現在、WPFアプリケーションにちょっとひどい問題があります...
コンポーネントの詳細を編集するために使用されるカスタムUserControlがあります。有効にしないことから始めて、ユーザーが編集するコンポーネントを選択するとすぐに有効になるはずです。
問題は、IsEnabledプロパティが変更されないことです。
これが私のコードです:
<my:UcComponentEditor Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
IsEnabled="{Binding EditorEnabled}"
DataContext="{Binding VmComponent}" />
EditorEnabledは私のViewModel(VmComponent)のプロパティであり、デフォルトではfalseであり、ユーザーがコンポーネントを選択または作成するとtrueになります。
念のために言っておきますが、私のViewModelでは次のようになっています。
private Boolean _editorEnabled = false;
public Boolean EditorEnabled
{
get { return _editorEnabled; }
set
{
_editorEnabled = value;
OnPropertyChanged("EditorEnabled");
}
}
アプリを起動しようとすると、UserControlが起動しています...有効になっています。どこにでもブレークポイントを追加しましたが、EditorEnabledは最初からfalseです。
また、何が起こっているのかを理解するために、ひどくばかげたことをしました。コンバーターを作成し(非常に便利で、ブール値をブール値に変換します)、ブレークポイントを設定しました。コードに到達することはありません。
<my:UcComponentEditor Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
IsEnabled="{Binding EditorEnabled, Converter={StaticResource BoolConverter}}"
DataContext="{Binding VmComponent}" />
これはおそらく、コンバーターに到達することがないため、プロパティisEnabledが設定されないことを意味します。
そこに何か問題がありますか?私は約1週間前にWPFで作業を開始したため、重要な何かを見逃した可能性があります...
どうもありがとうございました:-)