У меня есть простой дизайн с несколькими узлами, в которые я хочу отображать ListBox внутри Grid. Сам ListBox будет содержать два элемента: TextBlock и TextBox. TextBlock в каждом HubSection будет отображать одно и то же свойство, поэтому привязка данных довольно проста. Тем не менее, TextBox должен отображать другое свойство в каждом отдельном HubSection. Я потерян и даже не знаю, как я должен действовать. Вот мой XAML код:Как связать элементы управления с разными источниками с помощью datatemplate
<Page.Resources>
<ResourceDictionary>
<DataTemplate x:Key="BaseGridTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"></ColumnDefinition>
<ColumnDefinition Width="12"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock
Text="{Binding PlayerName}"
FontSize="28"/>
<TextBox Text="{Binding OtherProperty, Mode=TwoWay}"
Background="Lavender" FontSize="28"
Grid.Column="2">
</TextBox>
</Grid>
</DataTemplate>
</ResourceDictionary>
</Page.Resources>
Тогда в моих HubSections, я хочу использовать выше шаблон для отображения данных, как например:
<HubSection Width="350" x:Uid="Test" Header="Test">
<DataTemplate>
<ListBox x:Name="TestListBox" Grid.Column="1"
ItemsSource="{Binding}"
ItemTemplate="{StaticResource BaseGridTemplate}"
>
</ListBox>
</DataTemplate>
</HubSection>
В моем UI, оба свойства (PlayerName и OtherProperty) отображаются правильно. Но то, что я хотел бы сделать, это связать с другим свойством TextBox (т. Е. Отличается от OtherProperty). Я действительно не знаю, как я должен действовать, или если это возможно.
Я думал, что я мог бы что-то подобное определение моего TextBox в разделе Ресурсы, как например:
<TextBox Text="{Binding, Mode=TwoWay}">
А потом надеюсь, что я мог бы добавить что-то в HubSection части?
Google datacontext. Вы можете привязать datacontext к объекту, который имеет нужные значения, а затем используя привязку TextBox к члену этого объекта. – CalebB