私はテキストボックスを実装しました。チェックボックスをオンにしていても、その逆の場合は表示されなくてはなりません。WPFでviewmodelを使用してウィンドウ内にコントロールを表示したり非表示にすることはできませんか?
<TextBox Visibility="{Binding VisiMaxTime}" Height="23" HorizontalAlignment="Left" Margin="165,36,0,0" Text="{Binding Path=MaxTime,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" VerticalAlignment="Top" Width="75" />
<CheckBox IsChecked="{Binding MaxTimeIsChecked}" Content="Geen" FontWeight="Bold" Height="16" HorizontalAlignment="Left" Margin="104,39,0,0" Name="checkBox1" VerticalAlignment="Top" />
そして、これは私のviewmodelです::ここに は、私の見解である
public bool MaxTimeIsChecked
{
get { return maxTimeIsChecked; }
set
{
maxTimeIsChecked = value;
if (maxTimeIsChecked == true)
{
VisiMaxTime = Visibility.Hidden;
this.Examination.MaxTime = 0;
}
else
VisiMaxTime = Visibility.Visible;
OnPropertyChanged("MaxTimeIsChecked");
}
}
private Visibility visiMaxTime;
public Visibility VisiMaxTime
{
get { return visiMaxTime; }
set
{
visiMaxTime = value;
OnPropertyChanged("VisiMaxTime");
}
}
だから私は、これは良いと思います、これはユーザーコントロールで動作しますが、今私はウィンドウで働いています。 Visibilityのsetterにブレークポイントを設定すると、うまく動作しますが、テキストボックスは表示されません。誰かが私が間違っていることを知っていますか?私はあなたが双方向に結合必要な想像
おかげ
あなたは 'PropertyChanged'を起こしていますか? – SLaks
はい、visibilityプロパティでそれを編集しました。 – Ruben
コードがUserControlで動作する場合、変更なしでWindowで動作するはずです。私は何か間違ったコードを見ることはできません。実際のコードをコピーしてこの質問に貼り付けましたか? OnPropertyChangedメソッドでブレークポイントを設定して、プロパティの変更が期待通りに行われていることを確認してください。 –