簡體   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