Я не могу получить привязку данных для работы в DataTemplate в формах Xamarin. Я могу заставить его работать со списком (т. Е. Привязывать RowHeight), но однажды в DataTemplate установка свойств в свойство ViewModel не влияет.Формы Xamarin связывают свойства с элементами внутри элемента данных ListView DataTemplate
В приведенном ниже примере, если я устанавливаю свойство ColumnDefinition.Width в свойство, он полностью игнорируется, но его жесткое значение отлично работает. Я добавил ярлык, чтобы узнать, что такое значение свойства, и оно получается пустым, когда внутри Datatemplate, и я повторно проверил, что свойство верное, потому что, если я вынесу ярлык из списка, он отображает правильное значение ,
Любые идеи?
ОБНОВЛЕНИЕ: Мой класс «ParentPage», который имеет 2 свойства: «Пациенты» и «Настройки». Пациенты имеют наблюдаемую коллекцию «PatientList», как мне привязать к «Settings.Fontsize», показанной ниже в ярлыке. Я попробовал каждую комбинацию я могу думать:
<ListView x:Name="listView" ItemsSource="{Binding ParentPage.Patients.PatientsList}" RowHeight="{Binding ParentPage.Settings.RowHeight}" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid HorizontalOptions="FillAndExpand">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Image Grid.Row="0" Grid.Column="0"
Source="{Binding Picture}" />
<Label TextColor="Red" Text="{Binding ParentPage.Settings.FontSize}"
HorizontalOptions="Center" />
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Когда вы находитесь в DataTemplate для списка, вы привязываетесь к свойствам, которые относятся к содержимому списка, то есть в вашем случае вы привязываетесь к отдельному пациенту и его свойствам. Если у каждого пациента нет свойства под названием ParentPage, то, что вы пытаетесь сделать, не будет работать. – Jason