データバインドに苦労しています。私のMainWindowでは、私はデータバインディングのために使用するプロパティを保持するために、厳密にプロパティ "クラス"のプロパティResult
にデータバインドされている2つのボタンを持っています。ボタンはデフォルトでは表示されないようにしたい場合は、単に「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
を持っています。私の「プロパティ」クラスで
私は以下の持っていると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));
}
}
を実装しかし、私は「真」にプロパティを変更し、いくつかの理由でのPropertyChangedイベントがnullであるため、イベントが発生させたことがないです。
これはなぜ起こっているのですか?このコードは私のViewModelではなく、別のクラスにあるからでしょうか?
それはあなたのビューモデルとビューモデルにする必要がありますが、あなたの 'DataContext'に割り当てる必要があります。 – jsanalytics
お試しいただきありがとうございます。私はresutls – ganjeii
で更新されますこれは動作します!ありがとうございました! – ganjeii