在 wpf 中绑定组合框时出错

本文关键字:出错 组合 绑定 wpf | 更新日期: 2023-09-27 18:30:21


我想使用数据集绑定一个组合框,但这些值没有在组合框中设置,而是显示 system.data.datarowview。我搜索这个,没有一个答案是正确的。我正在使用以下代码

if (ds.Tables[0].Rows.Count > 0)
{
    cmb_usrname.ItemsSource = ds.Tables[0].DefaultView;
    cmb_usrname.DisplayMemberPath = ds.Tables[0].Columns["usrName"].ToString();
    cmb_usrname.SelectedValuePath = ds.Tables[0].Columns["userId"].ToString(); 
}  

XAML

<ComboBox Height="23" HorizontalAlignment="Left" Margin="129,53,0,0" Name="cmb_usrname" VerticalAlignment="Top" Width="140" ItemsSource="{Binding}"/>


谢谢
西瓦吉斯

在 wpf 中绑定组合框时出错

您需要将DisplayMemberPathSelectedValuePath设置为列名

cmb_usrname.DisplayMemberPath = "usrName";
cmb_usrname.SelectedValuePath = "userId"; 

由于这是固定的,因此您不妨在 XAML 中执行此操作

<ComboBox ... DisplayMemberPath="usrName" SelectedValuePath="userId"/>
我相信

这已经得到了回答。请查看我对此问题的其他答案之一在 WPF 中将数据源视图绑定到数据网格WPF 数据触发器不起作用。

亮点是:
1) 你的后备 cs 文件需要实现 INotifyPropertyChanged
2) 在 xmal 文件中设置 DataContext="{Binding RelativeSource={RelativeSource Self}}"
3) 在您的组合框中设置 itemsSource="{Bind SomeProperty}"
4) 在您的后备 cs 文件中具有 ObservableCollection<SomeType>
的属性5)当物业更新时,请致电NotifyPropertyChanged