이 문제를 조사하는 데 많은 시간을 할애했습니다. 어떤 도움이라도 대단히 감사하겠습니다.콤보 상자 선택 항목에 양방향 바인딩
나는 이와 같이 선언 된 WPF ComboBox가 있습니다. 내 코드에서
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Button Click="Button_Click">Click Me</Button>
<ComboBox ItemsSource="{Binding ListOfValues}" SelectedItem="{Binding MySelectedItem}" Grid.Row="1">
</ComboBox>
<CheckBox IsChecked="{Binding IsValueChecked}" Grid.Row="2"></CheckBox>
</Grid>
뒤에, 나는 이러한 속성을 가지고 그리고 난 버튼 클릭 이벤트가 콤보 상자의 selectedItem가 속성에 바인딩 된 MySelectedItem를 변화에서 INotifyPropertyChanged
public Window1()
{
InitializeComponent();
ListOfValues = new List<string>();
ListOfValues.Add("apple");
ListOfValues.Add("ball");
ListOfValues.Add("cat");
ListOfValues.Add("dog");
MySelectedItem = "cat";
IsValueChecked = true;
}
public List<string> ListOfValues
{
get
{
return _listOfValues;
}
set
{
_listOfValues = value;
OnPropertyChanged("ListOfValues");
}
}
public string MySelectedItem
{
get
{
return _selectedValueString;
}
set
{
_selectedValueString = value;
OnPropertyChanged("MySelectedItem");
}
}
public bool IsValueChecked
{
get
{
return _isVlaueChanged;
}
set
{
_isVlaueChanged = value;
OnPropertyChanged("IsValueChecked");
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
MySelectedItem = "dog";
IsValueChecked = !IsValueChecked;
}
을 구현하고있다. 그러나 버튼 클릭시 콤보 박스에서 아무 것도 선택되지 않습니다. 이유는 모르겠다. 이것은 명시 적으로 Mode = TwoWay로 설정 한 경우에도 발생합니다. 제발 제안 해주세요. 내 datacontext 자체로 설정되어 있으므로 확인란을 추가하여 제대로 데이터 바인딩이 발생하는지 확인했습니다.
EDIT : 샘플 WPF 프로젝트에서 발생합니다. 하지만 내가 원했던이 프로젝트는 winforms 앱이다. 내 wpf 컨트롤을 포함하려면 elementhost를 사용하고 있습니다. 그것은 변화를 가져오고 있습니까?
내가 제공 한 샘플이었습니다. 혼동을 피하기 위해 질문을 수정했습니다. –