0

在我的 ViewModel 中,我有以下方法:

public async Task<Boolean> DoSomething(Button sender)
{
    Binding binding = sender.GetBindingExpression(Button.IsEnabledProperty).ParentBinding;

    sender.IsEnabled = false;

    DoFastStuffs();

    await Task.Delay(250);

    sender.SetBinding(Button.IsEnabledProperty, binding);

    return true;
}

有一个更好的方法吗?因为我注意到手动设置属性而不将绑定保存在某处会永远从 XAML 对象中删除实际绑定。

编辑:这是我的按钮:

<Button IsEnabled="{Binding Converter={StaticResource ObjectToBooleanConverter}, ElementName=ComboBox, Path=SelectedItem}"/>
4

1 回答 1

1

为什么不绑定按钮的 Command 属性。实施 ICommand 还将为您提供(几乎)免费的 UI 控件上的启用/禁用操作,使用 CanExecute() 功能检查您的 ComboBox 的选定项目...

于 2013-05-13T12:37:10.927 回答