Мой простой опрос () пример только частично работает

Эта ошибка связана с тем, что вы связываете строку с шириной, для которой требуется другой объект.

Чтобы исправить это, одним из решений будет использование Converter, которое преобразует ваш тип (тот, который идет из ViewModel) в тип, ожидаемый для ширины сетки. Подробнее о конвертерах здесь

Конвертер, который вам нужен, будет выглядеть следующим образом:

public class IntToGridLengthConverter : IValueConverter
{
    public IntToGridLengthConverter()
    {
    }

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var intValue = System.Convert.ToInt32(value);
        return new GridLength(intValue, GridUnitType.Star);
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

Тогда в XAML вам просто нужно его использовать.

Добавление нового раздела в XAML и вызов конвертера


    
        
    

Затем использование конвертера в ваших привязках


                
                

Как вы можете видеть, я использую Ключ , который был установлен в предыдущей части.

Одним небольшим изменением, которое вам нужно сделать в свойствах ViewModel, является то, что теперь они должны иметь тип int (целое число). Таким образом, в вашей ViewModel вы должны установить только целую часть значения, которое вы хотите установить, например:

firstColValue = 7; 
secondColValue = 3;

Работа по преобразованию этих значений в 7* и 3* соответственно будет отвечать за Преобразователь .

Использование конвертеров не позволит вам использовать элементы Xamarin.Forms в ваших моделях представления, так как они должны быть независимыми. Также этот конвертер можно повторно использовать на любой другой странице, которая вам нужна.

Надеюсь, это поможет .-

6
задан Chris Ammerman 16 January 2009 в 16:07
поделиться

1 ответ

Разве опрос, как предполагается, не берет массив структур? Из страницы справочника:

   int poll(struct pollfd fds[], nfds_t nfds, int timeout);

И Вы передаете массив указателей на структуры:

struct pollfd **my_fds; 

Я думаю, что Вы должны иметь

struct pollfd *my_fds = calloc(sizeof(pollfd), MAX_CONN); 

Затем Ваш код имеет шанс работать.

11
ответ дан 9 December 2019 в 22:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: