기본값을 ComboBox
으로 설정하려고합니다. 나는 레이아웃에서 바인딩을 사용하고 있는데 어떻게 바인딩하는지 잘 모르겠습니다. 내가 데이터를 설정하고 어떻게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
코드를 여기 내 viewModel
입니다 :
<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
의 사용 ... 그럼, 생성자 prijemWindow.viewModel.Sklady = new Sklady();prijemWindow.viewModel.Sklady = new Sklady();
에 Sklady
을 ininialize과 끝 부분에 라인을 변경 ... 작동 얻을 :
sklady.skladID = prijemWindow.viewModel.Radky.radky[index].SKLAD;
prijemWindow.viewModel.Sklady = sklady;
감사합니다.
답장을 보내 주셔서 감사합니다. 이게 정말 도움이되지만 여전히 작동하지 않습니다. 내 문제는 그 문제는'ItemsSource = "{Binding Sklady.sklady}"와'SelectedValue = "{Binding Sklady.skladID}"'...하지만 ... 이 두 값을 올바르게 설정하는 방법을 모르겠다. – Sk1X1
@ Sk1X1 내 편집을 참조하십시오. –
목록 ('Sklady')을 어딘가에 초기화해야합니다. 생성자에서. 'Sklad' 클래스를'Sklady' 클래스에서 옮기는 편이 낫습니다. 후자는 실제로 말이되지 않습니다. 'Sklad'의 목록에 대해 하나의'skladId'를 가지고 있습니까? 왜? – mechanic