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 なしで行う方法だと思います。IsSelected を XPath 式で設定する方法はありますか?

<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 に答える