【问题标题】:Programmatic binding in SilverlightSilverlight 中的编程绑定
【发布时间】:2010-09-09 11:21:01
【问题描述】:

孩子们,我在这里错过了一些东西。这一直在抬头,我不知道这是怎么回事,所以我希望我的家人们能帮上忙。

在 Silverlight 中工作时,当我在我的 c# 代码中创建绑定时,它们在应用程序运行时永远不会停止。我的 xaml 中的声明性绑定似乎没问题,但是当我在 C# 中创建绑定时我做错了。我希望我遗漏了一些非常明显的东西。这是一个典型的被破坏的绑定:

TextBlock tb = new TextBlock();
Binding b = new Binding("FontSize");
b.Source = this;
tb.SetBinding(TextBlock.FontSizeProperty, b);

【问题讨论】:

  • “粉碎”是什么意思?绑定根本不起作用吗?
  • 是的,运行时好像没有任何效果。
  • 我很想投票反对你使用“家庭”这个词。 :-)

标签: c# .net silverlight data-binding


【解决方案1】:

至少从 Silverlight 3.1 开始,这不再是问题。无论如何,我无法重现它。

【讨论】:

【解决方案2】:

我刚刚尝试了您刚刚发布的确切代码,它运行良好,但做了一些更改。我认为问题在于您用于 SetBinding 调用的元素不是您要绑定的文本块。应该是:

TextBlock tb = new TextBlock();
Binding b = new Binding("FontSize");
b.Source = this;
tb.SetBinding(TextBlock.FontSizeProperty, b);

确保在“this”上还有一个 double 类型的 FontSize 公共属性。如果“this”是用户控件,我建议重命名该属性,以免隐藏继承的成员。

【讨论】:

  • 你说得对,这实际上只是一个复制/粘贴工件。在这种情况下,this 是一个自定义控件,我指的是它继承的 FontSize 属性。我看到这一切都在发生。恐怕我正在做的事情实际上会删除绑定,但我无法识别它。
猜你喜欢
  • 2011-03-10
  • 2012-09-18
  • 2023-04-01
  • 1970-01-01
  • 2011-02-01
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多