代码之家  ›  专栏  ›  技术社区  ›  MojoFilter

Silverlight中的程序化绑定

  •  7
  • MojoFilter  · 技术社区  · 17 年前

    孩子们,我在这里错过了什么。它一直在抬头,我不知道发生了什么,所以我希望我在这里的家人能帮忙。

    在Silverlight中工作时,当我在c#代码中创建绑定时,它们在应用程序运行时永远不会停止。我的xaml中的声明性绑定看起来不错,但我在C#中创建绑定时做错了什么。我希望我错过了一些显而易见的东西。以下是一个典型的被压碎的绑定:

    TextBlock tb = new TextBlock();
    Binding b = new Binding("FontSize");
    b.Source = this;
    tb.SetBinding(TextBlock.FontSizeProperty, b);
    
    2 回复  |  直到 16 年前
        1
  •  7
  •   Santiago Palladino Santiago Palladino    17 年前

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

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

    确保你在“this”上也有一个类型为double的FontSize公共属性。如果“this”是用户控件,我建议重命名该属性,这样就不会隐藏继承的成员。

        2
  •  2
  •   MojoFilter    16 年前

    至少从Silverlight 3.1开始,这似乎不再是一个问题。无论如何,我无法复制它。