[英]Default selected value in ComboBox
我試圖設置ComboBox
默認值。 我在布局中使用綁定,但不確定如何正確綁定。 這是我的viewModel
:
public class ViewModel : INotifyPropertyChanged
{
private Sklady sklady = null;
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
public Sklady Sklady
{
get
{
return this.sklady;
}
set
{
this.sklady = value;
NotifyPropertyChanged("Sklady");
}
}
}
我如何將數據設置為viewModel
:
private void comboBoxSklad_Loaded(object sender, RoutedEventArgs e)
{
//get some data
prijemWindow.viewModel.Sklady = sklady;
prijemWindow.viewModel.Sklady.skladID = prijemWindow.viewModel.Radky.radky[index].SKLAD;
}
我的viewModel
使用此類獲取值:
[DataContract]
public class Sklady
{
[DataMember]
public List<Sklad> sklady { get; set; }
[DataMember]
public String skladID { get; set; }
public class Sklad
{
public string ID { get; set; }
public string NAME { get; set; }
public string CODE { get; set; }
}
}
這是當前的xaml
代碼:
<ComboBox Name="comboBoxSklad" Loaded="comboBoxSklad_Loaded" ItemsSource="{Binding Sklady.sklady}" DisplayMemberPath="CODE"
SelectedValuePath="ID" SelectedItem="{Binding Sklady.skladID}"/>
數據正確綁定到ComboBox
,我可以從sklady
List
看到數據。 但是我想將ComboBox
默認值設置為skladID
值。 我該怎么做?
回答
從回答Klaus Byskov Pedersen
我得到它的工作。首先,我用SelectedValue
代替SelectedItem
......然后,我ininialize Sklady
在構造函數中prijemWindow.viewModel.Sklady = new Sklady();prijemWindow.viewModel.Sklady = new Sklady();
最后,更改了行:
sklady.skladID = prijemWindow.viewModel.Radky.radky[index].SKLAD;
prijemWindow.viewModel.Sklady = sklady;
非常感謝!
使用SelectedValue
而不是SelectedItem
。
<ComboBox Name="comboBoxSklad" Loaded="comboBoxSklad_Loaded" ItemsSource="{Binding Sklady.sklady}" DisplayMemberPath="CODE"
SelectedValuePath="ID" SelectedValue="{Binding Sklady.skladID}"/>
使用SelectedItem
,綁定項的類型Sklady
,而不是string
。
編輯 `
prijemWindow.viewModel.Sklady = sklady;
prijemWindow.viewModel.Sklady.skladID = prijemWindow.viewModel.Radky.radky[index].SKLAD;
你有NotifyPropertyChanged
當您設置viewModel.Sklady
但在這個被解雇的時候,你還沒有設置skladID
所以嘗試改變這兩個語句的順序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.