【问题标题】:How can I mark a `DependencyProperty` as `BindsTwoWayByDefault` in UWP?如何在 UWP 中将“DependencyProperty”标记为“BindsTwoWayByDefault”?
【发布时间】:2018-06-20 07:20:21
【问题描述】:

在 WPF 中,您可以默认使用 FrameworkPropertyMetadataOptions.BindsTwoWayByDefault 将自定义控件上的 DependencyProperty 标记为绑定 Mode=TwoWay,但 UWP 中似乎缺少 FrameworkPropertyMetadataUWP documentation on the {Binding} markup extension 表示默认模式可能会改变,但没有说明如何影响它。

模式

将绑定模式指定为以下值之一:“OneTime”、“OneWay”或“TwoWay”。这些对应于 BindingMode 枚举的常量名称。 默认取决于绑定目标,但在大多数情况下它是“OneWay”。请注意,这与 {x:Bind} 的默认值“OneTime”不同。

如何更改自定义控件上 UWP XAML 依赖属性的默认绑定模式?

【问题讨论】:

标签: c# xaml uwp uwp-xaml


【解决方案1】:

当前的 UWP SDK 不支持影响 DependencyProperty 的默认 BindingMode;这只能在 WPF 中实现。

在 UWP 上,所有 {Binding} 的默认值为 BindingMode.OneWay,而 {x:Bind} 的默认值为 BindingMode.OneTime

【讨论】:

  • 你有这个来源吗?虽然它符合观察到的行为,但它确实与文档相矛盾。
  • 您指的是什么文档?我可以挖掘确认此行为的文档上的链接,但这是我不久前就此事写的一篇文章pedrolamas.com/2015/10/19/compiled-bindings-considerations
  • 您参考的博客文章似乎描述了{x:Bind 标记扩展。 UWP documentation on the {Binding} markup extension 表示默认模式可能会改变。
  • 公平点,但基本上,文档是错误的!我已经联系了 Microsoft,很快就会更正以匹配我在此处回答中的信息。
猜你喜欢
  • 1970-01-01
  • 2017-04-14
  • 1970-01-01
  • 1970-01-01
  • 2020-01-18
  • 1970-01-01
  • 2017-11-22
  • 2018-09-07
  • 1970-01-01
相关资源
最近更新 更多