C# 组合框不显示SelectedValue
我对组合框有问题。当我试图将它设置为显示数据库中的数据时,它不显示值。C# 组合框不显示SelectedValue,c#,wpf,xaml,C#,Wpf,Xaml,我对组合框有问题。当我试图将它设置为显示数据库中的数据时,它不显示值。组合框包含app.xaml中数组中的项 代码如下: app.xaml 假设您的模型定义如下: public class ComboBoxItemString { public string ValueString { get; set; } } 绑定到组合框的SelectedValue的属性Rodzaj_poj必须是字符串而不是组合框项字符串对象 private string _rodzaj_poj; pu
组合框
包含app.xaml中数组中的项
代码如下:
app.xaml
假设您的模型定义如下:
public class ComboBoxItemString
{
public string ValueString { get; set; }
}
绑定到组合框
的SelectedValue
的属性Rodzaj_poj
必须是字符串
而不是组合框项字符串
对象
private string _rodzaj_poj;
public string Rodzaj_poj
{
get
{
return _rodzaj_poj ;
}
set
{
if (_rodzaj_poj == value)
{
return;
}
_rodzaj_poj = value;
OnPropertyChanged();
}
}
最后,您需要实现INotifyPropertyChanged
接口,这样一旦Rodzaj_poj
发生更改,就会通知该接口
public partial class MainWindow : Window, INotifyPropertyChanged
{
public MainWindow()
{
InitializeComponent();
Rodzaj_poj = "N3";
}
//..
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
var handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
}
好啊我之前已经做过,并且在datagrid中工作得很好,但Rodzaj_poj是数据库中的一个数据字段,我想在combobox中显示它。任何建议??该属性(Rodzaj_poj)的值始终在您定义的组合框itemsource中?是的,它已写入数据库,然后当我双击od datagrid行时,我会得到值,并希望显示它以编辑数据。k是对数据行的引用,那么我看不出问题出在哪里!!,从datagrid(或数据库)获取值时,设置Rodzaj_poj属性,Rodzaj_poj=vallueFromDataGrid!这是combobox的问题,不是Rodzaj_poj的问题。Rodzaj_poj是数据库中的一个字段,我想在combobox中显示该字段。我设置了combobox1.SelectedValue=k.Rodzaj_poj,但它不起作用。如果打开下拉列表(不显示值),是否在下拉列表中选择了预期项目?
public class ComboBoxItemString
{
public string ValueString { get; set; }
}
private string _rodzaj_poj;
public string Rodzaj_poj
{
get
{
return _rodzaj_poj ;
}
set
{
if (_rodzaj_poj == value)
{
return;
}
_rodzaj_poj = value;
OnPropertyChanged();
}
}
public partial class MainWindow : Window, INotifyPropertyChanged
{
public MainWindow()
{
InitializeComponent();
Rodzaj_poj = "N3";
}
//..
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
var handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
}