0

我是 WPF 的新手。我在不同的地方看到了不同的语法,如下所示。请在下面找到它并帮助我理解。

这下面的一个作品并被许多人使用。

<Style TargetType="{x:Type TextBlock}">

但是,这也同样有效。

<Style TargetType="{TextBlock}">

那么x:Type这里有什么意义呢?

有些人ListView, Itemsource = "{Binding}"在有些地方用,我需要用Itemsource = "{Binding Propertyname}"

我的问题是,在某些地方,只有当我使用 Propertyname 时,它​​才会显示数据,而在某些地方,当我不使用 propertyname 而只是 Binding 时,它会显示数据。如何以及为什么?

4

1 回答 1

1

编辑:我不得不研究你的第一个问题,因为我对 WPF 生疏了。来自MSDN

WPF 支持无需使用 x:Type 标记扩展即可指定类型 Type 的某些属性的值的技术。相反,您可以将值指定为命名类型的字符串。这方面的示例是 ControlTemplate.TargetType 和 Style.TargetType。不通过类型转换器或标记扩展提供对这种行为的支持。相反,这是通过 FrameworkElementFactory 实现的延迟行为。

因此,缺少“x:Type”只是 XAML 解析功能提供的一种便利。

至于您的第二个问题,Itemsource = "{Binding}"将绑定到该组件的任何 DataContext 。 Itemsource = "{Binding Propertyname}"绑定到 DataContext.Propertyname。这也相当于Itemsource = "{Binding Path=Propertyname}"

我可以建议一些阅读

于 2013-07-02T03:39:58.407 回答