1

如何在 ComboBox 中显示当前选定的项目?选择哪个项目的信息存储在 XML 文件中。

它在应用程序启动时的外观:

现在的情况

它在应用程序启动时的外观:

期望的情况

XML 数据源如下所示:

<Contact>
  <Name>John</Name>
  <Lastname>Doe</Lastname>
  <Gender>Male</Gender>
</Contact>

这就是我尝试过的(在许多其他变体中)

<ComboBox SelectedItem="{Binding XPath=Contact/Gender, Mode=TwoWay}" Name="cmbGender" Width="100" >
   <ComboBoxItem Content="Male" />
   <ComboBoxItem Content="Female" />
</ComboBox>

我想这就是没有 XmlDataProvider 的方式。有没有办法用 XPath 表达式设置 IsSelected?

<ComboBox Name="cmbGender" Width="100" >
   <ComboBoxItem Content="Male" IsSelected="True"/>
   <ComboBoxItem Content="Female" />
</ComboBox>

编辑: 这就是我设置数据源的方式:

<Grid>
    <Grid.DataContext>
        <XmlDataProvider x:Name="DataProvider" XPath="/" />
    </Grid.DataContext>

     // Binding is working fine
    <TextBox Name="txtLastname" Width="100" Text="{Binding XPath=Contact/Lastname, UpdateSourceTrigger=PropertyChanged}" />

    // not working
    <ComboBox SelectedItem="{Binding XPath=Contact/Gender, Mode=TwoWay}" Name="cmbGender" Width="100" >
       <ComboBoxItem Content="Male" />
       <ComboBoxItem Content="Female" />
    </ComboBox>
</Grid>
4

1 回答 1

1

Text 属性是关键,它是这样工作的:

<ComboBox Text="{Binding XPath=Contact/Gender, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Name="cmbGender" Width="100">
     <ComboBoxItem Content="Male" />
     <ComboBoxItem Content="Female" />
</ComboBox>
于 2013-04-10T14:09:40.647 回答