【问题标题】:Binding to object in WinRT在 WinRT 中绑定到对象
【发布时间】:2012-10-19 19:54:15
【问题描述】:

我正在寻找一种在 Windows 8 应用中实现以下目标的方法:

<TextBlock Text="{Binding ., Converter={StaticResource MyConverter}, ConverterParameter=x}" />

TextBlockDataTemplateItemTemplateListView 内,但由于某种原因,绑定到 .在 WinRT 中似乎不起作用(绑定错误为:Error: BindingExpression path error: '.' property not found),而在 WPF/Silverlight/Windows Phone 上同样适用。

我正在尝试这样做,因为我想将整个绑定对象(不仅仅是单个属性)传递给转换器以输出依赖于对象的多个值的字符串。

提前感谢您的帮助!

【问题讨论】:

  • 是否可以在返回所需字符串的对象上公开一个属性,然后绑定到该属性?
  • @JustinSkiles,我不想那样做,因为我想让我的模型尽可能干净,并在转换器中进行实际的字符串格式化(我认为应该这样做) .我只是觉得很奇怪{Binding .} 在 WinRT 上的 XAML 中不起作用,而在 WPF/Silverlight/Windows Phone 上却可以正常工作。
  • 你能发布你的绑定对象的代码吗?
  • @Bitsian,我可以,但我真的不明白这一点,因为它只是一个具有几个属性的类。您能否详细说明这将如何提供帮助? (最有可能找到 {Binding .} 的替代品?)

标签: xaml data-binding windows-8 windows-runtime


【解决方案1】:

尝试以下方法来绑定整个对象。

<TextBlock Text="{Binding Converter={StaticResource MyConverter}" />

如果您不指定路径(显式或隐式),它将绑定到整个对象。

【讨论】:

    【解决方案2】:

    既然你说你用的是转换器,我觉​​得这样会更合适

    <TextBlock Text="{Binding propertName, Converter={StaticResource ConverterKey}}" />
    

    你还需要引用你写的转换器

    <converter:ConverterClass x:Key="ConverterKey" Component="YourConverter" />
    

    【讨论】:

    • 很抱歉最初没有提供完整的 sn-p,我已经更新了我的问题。问题是我不想绑定一个特定的属性,而是绑定整个对象,所以我可以在转换器中使用多个属性来生成输出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 2012-09-15
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多