【问题标题】:Is it possible to bind to a property name?是否可以绑定到属性名称?
【发布时间】:2013-01-30 16:16:17
【问题描述】:

是否可以绑定属性名。当我尝试时,我似乎想出了运行时错误。

例如:

<button Name="{Binding UniqueID}" Click="ButtonHandler">

这是在网格视图中的集合的标题中...

【问题讨论】:

  • 好问题。理论上 Name 似乎是一个 DependencyProperty 并且它应该可以工作,但如果它没有,我不会感到惊讶。你检查过文档吗?此外,如果您有任何特定的运行时异常,可能还有其他方法可以调试您的运行时异常。 msdn.microsoft.com/en-us/library/windows/apps/…

标签: c# xaml button binding windows-runtime


【解决方案1】:

嗯,我一遍又一遍地阅读文档,但找不到让它工作的方法。文档没有说你不能这样做,但也没有说你可以做到。

但是,我找到了两种解决方法。如果您不使用 Tag 或 DataContect,而不是绑定名称,您可以找到它们并在处理程序中通过转换为字符串来提取它们。

它并不优雅,但它似乎可以按预期工作。

【讨论】:

    【解决方案2】:

    您无法绑定名称,抱歉。它在内部用于太多事情,如果可以的话,事情肯定会变得疯狂。文档有点含糊,但请这样说:(强调我的)

    您不能将 Name 的字符串值用作 数据绑定源的直接源值。如果必须显示 与绑定的 UI 中的名称相同的字符串值,您应该复制 与 Tag 属性相同的值,可用作属性 绑定源。 也不要使用 Name 作为绑定目标。

    (MSDN: FrameworkElement.Name)

    但是,如果您想将随机的额外数据附加到 UI 控件,我建议您改用附加属性。这样一来,它们就与您正在做的事情特别相关,并且会被适当地键入,这与标签不同。

    (MSDN: Custom Attached Properties)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 2019-06-28
      • 2011-04-05
      • 1970-01-01
      • 2011-09-01
      • 2015-01-19
      相关资源
      最近更新 更多