如何设置x:Static的回退值

时间:2014-06-04 10:29:58

标签: c# wpf mvvm

SUBJ。

可以这样做以避免在设计中出现模糊视图:

<Window.Effect>
    <BlurEffect Radius="{Binding Blur, FallbackValue=0}"/>
</Window.Effect>

但是

<TextBlock ext="{x:Static local:App.Version}"/>

在设计时自动属性App.Versionnull。我可以使它成为普通属性并指定私有字段默认值

private static string _version = "Version1.0.0.0";
public static string Version { get { return _version; } }

当我希望显示非默认值时,仍然存在这种情况。例如,

"Test long version string to be visible in designer only"

是的,我理解,BindingStatic在某种程度上是不同的,但是,有没有办法实现我想要的?我还要将App.Version传递给ViewModel并通过Binding将View绑定到它,但这更糟糕(努力方面),尽管更多mvvm概念。

1 个答案:

答案 0 :(得分:3)

怎么样:

<TextBlock Text="{Binding Source={x:Static local:App.Version}, TargetNullValue='In designer'}" />

请注意,当TargetNullValue无法获取值时,必须使用FallbackValue Bindingstatic属性不应该这样。