【问题标题】:How to write a value object in XAML using markup extension?如何使用标记扩展在 XAML 中编写值对象?
【发布时间】:2010-01-07 07:14:49
【问题描述】:

我想换

<Button Text="Foo" Command="{Binding Foo}">
    <Button.CommandParameter>
        <System:Boolean>True</System:Boolean>
    </Button.CommandParameter>
</Button>

类似

<Button ... CommandParameter="{???}"/>

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    您可以通过从 MarkupExtension 类派生并实现 ProvideValue 方法来编写标记扩展:

    public class BooleanValueExtension : MarkupExtension
    {
      private readonly bool _value;
    
      public BooleanValueExtension(bool value)
      {
        _value = value;
      }
    
      public override object ProvideValue(IServiceProvider serviceProvider)
      {
        return _value;
      }
    }
    

    然后您可以使用大括号语法来使用它:

    <Button CommandParameter="{local:BooleanValue True}" />
    

    【讨论】:

      猜你喜欢
      • 2015-05-04
      • 2018-09-18
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      • 2012-02-01
      • 2016-08-13
      • 2011-12-07
      • 1970-01-01
      相关资源
      最近更新 更多