0
파일의 코드에 속성이 있습니다.WPF PropertyChanged가 null입니다.
private int? selectedTypeID = null;
public int? SelectedTypeID
{
get
{
return selectedTypeID;
}
set
{
selectedTypeID = value;
OnPropertyChanged("SelectedTypeID");
}
}
이것은 PropertyChanged의 코드입니다. 문제는 주석 처리 된 라인에 언급되어 있습니다.
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
/*PropertyChanged appears to be null in some cases while in some cases it is not null. I have also tried to explicity assigning it the DataContext but that does not work as well. */
if(PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
//This line is in DataContext file where the problematic property is assigned a null.
editLayerSidebar.editConditionIngredient.SelectedTypeID = null;
//This is the combobox xaml where SelectedTypeID has been bound to SelectedValue.
<ComboBox x:Name="TypeCombo" Grid.Row="3" Grid.Column="1" Margin="5,5,0,0"
ItemsSource="{Binding DataContext.IngredientTypes, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:EditConditionListLayer}}}"
DisplayMemberPath="Name" SelectedValuePath="ID" SelectedValue="{Binding SelectedTypeID, RelativeSource={RelativeSource Mode=Self}}" >
왜 ProperyChanged가 자주 null이되어 콤보 상자가 업데이트되지 않는 이유는 무엇입니까? 해결책은 무엇이되어야합니까?
정지'propertyName' = null을 설정 : 그래서 경우가 될 수있다, 심지어
ComboBox
자체가 원하는DataContext
을 가지고 의심? –언제든지 DataContext를 설정 했습니까? – furkle
combobox selectedvalue에서 상대 소스를 삭제 해보세요. – DLeh