Привязка в ListView в XAML Xamarin - PullRequest
       1

Привязка в ListView в XAML Xamarin

0 голосов
/ 25 февраля 2019

Может ли кто-нибудь ответить мне на вопрос о listview?У меня есть переменная MyDatas, которая является коллекцией списка (и она работает):

<ListView 
            x:Name="lstView"
            HasUnevenRows="True"
            ItemsSource="{Binding MyDatas}"> ...

Далее у меня есть (часть моего кода, но этого достаточно для объяснения проблемы):

<Label Grid.Row="0"
       Grid.Column="1" 
       Text="{Binding E1}" 
       FontSize="{Binding FProp.Size1}" 
       FontAttributes="{Binding FProp.Atrib1}"/>

E1 - это поле MyDatas, и эта привязка работает правильно.У меня есть свойство шрифтов в другой переменной FProp (FProp.Size1 и FProp.Atrib1), и это проблема!Как я могу использовать эту другую переменную в этом списке?Если FProp используется за пределами просмотра списка, все в порядке, если я использую его в просмотре списка, он не работает.

Спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Вы можете добавить x: Name к вашему ListView, скажем, listView1 и использовать что-то вроде этого

{Binding Path=BindingContext.FProp.Size1, Source={x:Reference listView1}}
0 голосов
/ 25 февраля 2019

Я считаю, что вы не правильно связываете размер шрифта.Вы ссылаетесь на свойство с именем Size1 внутри объекта FProp, которого нет в текущем контексте привязки.Основная проблема заключается в том, что вы можете иметь только один контекст привязки для каждого объекта.Таким образом, вы должны включить Size1 и Atrib1 в ваш MyDatas объект, чтобы сделать его доступным для метки.Другой вариант - изменить контекст привязки списка для указания на FProp, тогда вы сможете получить доступ к значениям на метках, но вы потеряете доступ к значению E1.Поэтому вам нужно будет решить, как решить эту проблему, в зависимости от предоставленных опций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...