【问题标题】:Bind WPF ComboBox with choices defined in datatable将 WPF ComboBox 与数据表中定义的选项绑定
【发布时间】:2012-06-12 08:48:30
【问题描述】:

我想做类似于Data bound WPF ComboBox with choices defined in XAML? 的事情,但我想在数据表 SettingValues 中指定选项。此数据表将包含三列:SettingType (int)、SettingId (int) 和 Description。我想在组合框中显示某个 SettingType(例如 1)的所有行的描述。我想为每个设置对这个 SettingType 进行硬编码。然后我想将所选的 SettingId 保存在另一个带有 Setting1 列的表中。

这个问题似乎也做了类似的事情:how to bind ComboBox with DataTable

第一次尝试(代码 sn-p):

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

如何指定要使用的表?现在只是指定的列。如何指定只使用某些行,那些 SettingType 匹配某个 int?

【问题讨论】:

标签: wpf xaml


【解决方案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 是一个数据集。

通过使用 cbSetting1.SelectedItem 在会话之间保存选定的设置来设置和获取值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-10
    • 2010-12-27
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多