일부 데이터 바인딩에 어려움을 겪고 있습니다. 내 MainWindow에서 나는 데이터 바인딩을 위해 사용할 속성을 보유하기 위해 "Properties"클래스의 속성 Result
에 데이터 바인딩되는 2 개의 버튼을 가지고 있습니다. 버튼은 기본적으로 숨겨져 있으며, 내가 볼 수있게하려면 단순히 "012"로 바뀌는 속성을 Result
으로 설정하십시오.속성을 업데이트 한 후 WPF PropertyChanged 이벤트가 null입니다.
속성을 정적 값으로 설정하면 데이터 바인딩이 작동하는 것을 알 수 있습니다. 버튼은 보이거나 보이지 않습니다. 내 XAML 그래서 그들은 "결과"속성에 바인딩
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<StackPanel.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVis" />
</StackPanel.Resources>
<Button x:Name="btnBack" Height="25" Content="<- Back" Visibility="{Binding Path=Result, Converter={StaticResource BoolToVis},
UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top" Width="75" Click="btnBack_Click" Margin="0,0,10,0" />
<Button x:Name="btnNext" Height="25" Content="Next ->" Visibility="{Binding Path=Result, Converter={StaticResource BoolToVis},
UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top" Width="75" Click="btnNext_Click" Margin="10,0,0,0"/>
</StackPanel>
내용은 아래를 참조하십시오, 나는 내 바인딩에 UpdateSourceTrigger=Propertychanged
있습니다. 내 "속성"클래스에서
나는 아래에 있고 나는 "참"를하여 PropertyChanged 이벤트가 null 따라서 이벤트가 터지지 않 속성을 변경할 때
bool _result;
#endregion
public bool Result {
get
{
return _result;
}
set
{
_result = value;
NotifyPropertyChanged("Result");
}
}
#region EVENTS
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged(string propName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propName));
}
}
INotifyPropertyChanged
을 구현하지만 어떤 이유입니다.
왜 이런 일이 발생하는지 알고 싶습니다. 이 코드가 내 ViewModel에없고 별도의 클래스에 있기 때문에 가능합니까?
그것은 당신의보기 모델과 뷰 모델에 있어야합니다 귀하의'DataContext'에 할당해야합니다. – jsanalytics
감사합니다. 지금 시도해보십시오. 내가 resutls – ganjeii
와 함께 업데이 트됩니다 이것은 작동합니다! 고맙습니다! – ganjeii