[英]Binding the SelectedItem of a WPF ComboBox to an XML Attribute
我目前有一个包含ComboBoxes的DataGrid列。 DataGrid绑定到XML文件,而Combobox绑定到子节点(车辆)。 所需的值当前显示在我的ComboBox中,但是不会设置所选的值。 我究竟做错了什么。
这是我的XML结构
<Names>
<Name isActive="True">
<Family>Doe</Family>
<First>John</First>
<Middle>Deer</Middle>
<Vehicles>
<Vehicle isSelected="true">Car1</Vehicle>
<Vehicle>Car2</Vehicle>
</Vehicles>
</Name>
</Names>
这是我的XAML
<DataGrid DataContext="{StaticResource CrewInfo}" ItemsSource="{BindingXPath=/Names/Name}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Family Name" Binding="{Binding XPath=Family}"/>
<DataGridTextColumn Header="First Name" Binding="{Binding XPath=First}"/>
<DataGridTextColumn Header="Middle Name" Binding="{Binding XPath=Middle}"/>
<DataGridTemplateColumn Header="Vehicles">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Name="vehicleBox" ItemsSource="{Binding XPath=Vehicles/Vehicle}" IsSynchronizedWithCurrentItem="true">
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Setter Property="IsSelected" Value="{Binding XPath=@isSelected, Mode=TwoWay}"/>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
奇怪的是,我在不相关的线程上找到了答案。
这是theSelectedValue绑定的正确代码。
<ComboBox Name="vehicleBox" ItemsSource="{Binding XPath=Vehicles//*}">
<ComboBox.SelectedValue>
<Binding XPath="Vehicles/Vehicle[@isSelected='True']"/>
</ComboBox.SelectedValue>
</ComboBox>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.