xaml中的嵌套属性语法

时间:2011-11-02 08:44:17

标签: wpf xaml

我有嵌套对象,在xaml中定义。 例如,我有一个这样的代码(utils:HotkeyCommand是代码隐藏中的MarkupExtension类):

<dxb:BarButtonItem>
  <dxb:BarButtonItem.Command>
    <utils:HotkeyCommand />
  </dxb:BarButtonItem.Command>
</dxb:BarButtonItem>

看起来很笨拙,所以我决定用以下方式重写它(这很好):

<dxb:BarButtonItem Command="{utils:HotkeyCommand}" />

之后,我想在原始代码中定义一些属性:

<dxb:BarButtonItem>
  <dxb:BarButtonItem.Command>
    <utils:HotkeyCommand CanExecuteNotifier="{StaticResource GeneralEnabled}" Executed="test" Gesture="Ctrl+N" />
  </dxb:BarButtonItem.Command>
</dxb:BarButtonItem>

如何以相同的方式将此代码重写为一行?

我希望得到类似的内容(但不会编译)。是否有任何规则可用于将一种符号转换为第二种符号?

<dxb:BarButtonItem Command="{utils:HotkeyCommand CanExecuteNotifier={StaticResource GeneralEnabled}, Executed={test}, Gesture={Ctrl+N}}" />

1 个答案:

答案 0 :(得分:0)

最后我在x0r的答案的帮助下工作了(它去哪了?)

 <dxb:BarButtonItem Command="{utils:HotkeyCommand {StaticResource GeneralEnabled}, Executed=test, Gesture=Ctrl+N}" />

除了删除括号外,我还必须更改:

  1. Executed从事件更改为持有代理人的财产
  2. 为了能够从资源中使用HotkeyCommand,我必须在MarkupExtension中使用参数创建一个构造函数,如所述here