Я борюсь с некоторыми привязками данных. В моем MainWindow у меня есть две кнопки, которые привязываются к свойству Result
в классе «Свойства» - строго для хранения свойств, которые я буду использовать для привязки данных. Кнопки скрыты по умолчанию, и когда я хочу, чтобы они стали видимыми, я просто установил свойство Result
, что они привязаны к «True».Событие 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
в моем переплете.
В моем классе «Свойства» У меня есть ниже и AM реализации INotifyPropertyChanged
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));
}
}
Но по какой-то причине, когда я изменить свойство «True» PropertyChanged события равна нулю, и поэтому событие не срабатывает.
Любая идея, почему это происходит? Может быть, потому, что этот код отсутствует в моей модели ViewModel и только в отдельном классе?
Это должно быть в вашей модели представления и модели представления должны быть отнесены к вашему 'DataContext'. – jsanalytics
Спасибо, что я попробовал сейчас. Я буду обновлять с помощью Resutls – ganjeii
Это работает! Спасибо! – ganjeii