1

XAML で定義された選択肢を使用して、データにバインドされた WPF ComboBox に似たようなことをしたいと思いますか? しかし、代わりにデータ テーブル SettingValues で選択肢を指定したいと考えています。このデータ テーブルには、SettingType (int)、SettingId (int)、Description の 3 つの列が含まれます。コンボボックス内の特定の SettingType (たとえば 1) のすべての行の説明を表示したいと考えています。この SettingType は、設定ごとにハードコーディングしたいと考えています。選択した SettingId を別のテーブルに保存して、Setting1 列にします。

この質問も同様のことをしているようです: how to bind ComboBox with DataTable

最初の試み (コード スニペット):

<ComboBox SelectedValue="{Binding Setting1}" SelectedValuePath="SettingId">
 <ComboBox.ItemTemplate>
  <DataTemplate>
   <TextBlock Text="{Binding Path=Description}"/>                                 
  </DataTemplate>
</ComboBox>

使用するテーブルを指定するにはどうすればよいですか? 現在は指定された列のみです。SettingType が特定の int に一致する特定の行のみを使用して指定するにはどうすればよいですか?

4

1 に答える 1

1

を使用してデータ テーブルから値を読み取る問題を解決しました。

<ComboBox x:Name="cbSetting1" ItemsSource="{Binding}">
 <ComboBox.ItemTemplate>
  <DataTemplate>
   <TextBlock Text="{Binding Path=ValueDescription}" />
  </DataTemplate>
 </ComboBox.ItemTemplate>
</ComboBox>

.cs ファイルでは、DataContext は SettingType == 1 を使用して行に設定されます。

var dataRows1 = svds.SettingValues.Select("SettingType = 1");
cbSetting1.ItemsSource = dataRows1.AsEnumerable();

ここで、svds は DataSet です。

選択した設定をセッション間で保存するには、cbSetting1.SelectedItem を使用して値を設定および取得します。

于 2012-06-11T11:49:47.030 に答える