首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CommandParameter绑定在Command.CanExecute触发后解析

CommandParameter绑定在Command.CanExecute触发后解析
EN

Stack Overflow用户
提问于 2015-06-12 20:42:23
回答 1查看 128关注 0票数 2

我有一个带有绑定命令和命令参数的按钮:

代码语言:javascript
运行
复制
    <Button Margin="5,0,5,5" Style="{StaticResource MainButton}" Grid.Row="2" Grid.RowSpan="2" Grid.Column="3" Padding="0">
         <Button.CommandParameter>
              <MultiBinding Converter="{StaticResource SwapArgsConverter}" ConverterParameter="-1">
                   <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=tlq:SmartWarningsWindow}" Path="DataContext.SelectedWarning"></Binding>
                   <Binding Path="Rank"></Binding>
              </MultiBinding>
         </Button.CommandParameter>
         <Button.Command>
              <Binding RelativeSource="{RelativeSource FindAncestor, AncestorType=tlq:SmartWarningsWindow}" Path="DataContext.SwapCommand"></Binding>
         </Button.Command>
     </Button>

绑定都正常工作,但Command绑定解析,而ICommand.CanExecute方法在CommandParameter绑定解析之前触发。这导致在加载窗口时我的控件被错误地禁用。

我尝试了几种方法,包括将Command绑定放在CommandParameter绑定之后,就像上面看到的那样(最初的命令绑定是一个属性)。

有谁知道强制CommandParameter绑定首先解决的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-12 20:55:58

您可能在命令类中遗漏了这一点:

代码语言:javascript
运行
复制
public event EventHandler CanExecuteChanged
{
    add { CommandManager.RequerySuggested += value; }
    remove { CommandManager.RequerySuggested -= value; }     
}

每当CommandManager认为已发生更改并将影响命令执行能力时,就会引发事件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30811873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档