Im пытается установить значение по умолчанию ComboBox
. Я использую привязку в макете, и я не уверен, как правильно привязать ее. Вот мой viewModel
:По умолчанию выбранное значение в ComboBox
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;
Большое спасибо!
Спасибо за ответ! Это действительно полезно ... но все еще не работает. Мое предположение заключается в том, что проблема заключается в 'ItemsSource =" {Binding Sklady.sklady} "и' SelectedValue = "{Binding Sklady.skladID}" '... но я Не знаю, как правильно установить эти два значения, чтобы заставить его работать. – Sk1X1
@ Sk1X1 см. мое редактирование. –
Вам нужно инициализировать свой список ('Склады') где-нибудь, например. в конструкторе. Вы лучше переместите свой класс «Sklad» из класса Sklady, и последний на самом деле не имеет смысла. У вас есть один «skladId» для списка «Sklad's?»? Зачем? – mechanic