【发布时间】:2016-06-24 10:33:21
【问题描述】:
我喜欢尽可能绑定到静态属性(例如,当不需要通知或模型为其他目的实现 INotifyPropertyChanged 时),例如:
Visibility="{Binding IsAdministractor, Source={x:Static local:User.Current}, Converter={local:FalseToCollapsedConverter}}"
问题是这样的评估也在设计时起作用,因此很难与设计师合作。
普通绑定在设计时不起作用,我可以使用FallbackValue 来指定仅设计时的值(我从未在运行时使用过FallbackValue)。
有没有一种简单的方法可以在设计时使绑定到静态属性无效(禁用它们)?
我可以暂时重命名属性,例如IsAdministrator123,但这很乏味。
【问题讨论】:
-
如果您创建 DataContext 或使用 DesignInstance 值,则普通绑定在设计时工作。这通常会使编码更容易(IntellisSense 工作、即时预览等)
-
@ASh,我同意你可以做到,但这太费力了。在任何情况下,我都不希望设计师向我展示运行时的外观,我可以简单地运行该软件。不确定“正常绑定在设计时不起作用”有多不寻常。
标签: c# wpf binding static-members xaml-designer