WPF-如果视图模型中的属性为null,则使用样式的默认值

用户名

我有自己的自定义控件,其依赖项属性称为“最大值(double)”,并且我为此自定义控件定义了自己的样式。在自定义控件样式中,最大值为(50)的二传手。在应用程序中,我具有属性为Maximum(double?)的视图模型。

<Style x:Key="MyCustomControlDefaultStyle" TargetType="controls:MyControl">
    <Setter Property="Maximum" Value="50" />

</Style>
<controls:MyControl Maximum="{Binding Maximum}" 
                                Style="{StaticResource MyCustomControlDefaultStyle}" 
                                       />

如果视图模型中的最大值为null,我想自动使用MyCustomControlDefaultStyle中定义的默认值来wpf。是否有可能?谢谢你的建议

鹅膏

现在无法检查,但是您可以将DefaultValue放在静态属性中,然后从样式和具体Binding内部的Fallbackvalue / TargetNullValue中引用此值,例如:

<Setter Property="Maximum" Value="{x:Static ns:MyStaticClass.MyStaticProp}" />

并在Binding之内,如:

<controls:MyControl Maximum="{Binding Maximum, FallBackValue={x:Static ns:MyStaticClass.MyStaticProp}" 
                                Style="{StaticResource MyCustomControlDefaultStyle}"  />

不确定是否适用于FallBackValue。我待会儿再检查... :)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章