【发布时间】:2011-12-07 08:10:21
【问题描述】:
我正在学习 WPF 的概念,例如数据绑定、命令、资源、元素绑定、样式等,它们广泛使用标记扩展,但我在理解标记类背后的含义时遇到了问题,因为它们是使用超出我的理解他们应该被使用。所以这里有几点我需要明确: (所有代码 sn-ps 均来自 C# 2010 书中的 Pro WPF)
-
静态扩展的含义和用途是什么?它可以用来 声明静态资源,可以声明为 ,但是这个 xaml 让我感到困惑:
<Button ... Foreground="{x:Static SystemColors.ActiveCaptionBrush}" >在{x:Static SystemColors.ActiveCaptionBrush}中,作用是什么 这里是静态的,如果我在这里使用 x:Dynamic 会发生什么变化?这 书上说这个 xaml 相当于这个代码隐藏:
cmdAnswer.Foreground = SystemColors.ActiveCaptionBrush;
这意味着如果我有一个具有静态属性的类,我应该 能够使用这样的东西:
<Button ... Foreground="{x:Static MyClass.SomeStaticProperty}" >但它没有用,尽管我创建了一个类,但我尝试使用 local:Static(指本地命名空间)但 VisualStudio 不允许我使用它。什么是正确的实现方法 这个?
-
Binding是什么意思(除了明显的意思外,什么是 当我绑定时发生)?它用于资源绑定,或 数据或元素绑定。我能够理解元素绑定, 但是绑定到不是元素的对象会导致问题。为了 示例:
<TextBlock Text="{Binding Source={x:Static SystemFonts.IconFontFamily}, Path=Source}"></TextBlock>这里它绑定到 SystemFonts.IconFontFamily 的文本 属性,在这种情况下 x:static 有什么用,以及如何绑定 它到我创建的类中的属性?还有怎么更新 如果绑定的值是文本字段的文本属性 目标变化?由于绑定,它应该自己更新,是这个 情况如何?
书中的所有例子都使用了 SystemFonts.IconFontFamily, 我所见过的都没有解释这种绑定的使用,以及如何 为我创建的课程做吗?在这方面的一些帮助是 需要。我想问更多关于绑定的问题,但我会在 仅关于绑定的单独问题。
最后,推荐一本书或资源来解释什么是 发生,而不是如何做这做那?
【问题讨论】:
标签: wpf xaml binding markup-extensions