繁体   English   中英

将WPF组合框的SelectedItem绑定到XML属性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM