2

だから私は今WPFを学んでいて、bool値とaMenuItemが有効かどうかの間で単純なデータバインドをしたいと思っています。

私は次のようにコーディングしました:

<MenuItem Name="miSaveFile" Header="Save" Click="miSaveFile_Click"
IsEnabled="{Binding}" />

そして、私が設定した.csファイルで:

miSaveFile.DataContext = dataChanged;

何らかの理由MenuItemで、dataChanged の状態が正しく反映されていないようです。

私は何が欠けていますか?

4

3 に答える 3

2

MenuItemの場合、ClickプロパティとIsEnabledプロパティよりもCommandモデルを使用する方が良いアプローチではないでしょうか。

InitialiseComponent()の後:

this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Save, fileSaveExecuted, fileSaveCanExecute));

追加の方法:

/* here is where you set e.CanExecute true for enabled: */
    private void fileSaveCanExecute(object x, CanExecuteRoutedCommandEventArgs e)) { e.CanExecute = ...; e.Handled = true; }
/* here is where you act on the command: */
    private void fileSaveExecuted(object sender, ExecutedRoutedEventArgs e) { ... }

XAML:

<MenuItem Header="_Save" Command="Save"/>
于 2011-08-10T16:58:26.333 に答える