我正在努力与一些数据绑定。在我的MainWindow中,我有2个按钮,这些按钮是数据绑定到属性Result
的“属性”类 - 严格用于保存将用于数据绑定的属性。这些按钮默认是隐藏的,当我希望它们变得可见时,我简单地将它们绑定到的属性设置为“真”更新属性后WPF PropertyChanged事件为空
我知道数据绑定正在工作,因为如果我将该属性设置为静态值,这些按钮是可见/不可见的。请参阅下面我的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
。
在我的“属性”类我有下面和我实现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
谢谢j现在就试一试。我会更新与resutls – ganjeii
这工程!谢谢! – ganjeii