我想替换
<Button Text="Foo" Command="{Binding Foo}">
<Button.CommandParameter>
<System:Boolean>True</System:Boolean>
</Button.CommandParameter>
</Button>
类似
<Button ... CommandParameter="{???}"/>
答案 0 :(得分:9)
您可以通过从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}" />