在代码后台绑定字符串属性到TextBlock控件

22

我想通过代码(C#)将一个非常简单的属性绑定到TextBlock上。

我的目标是:

public string SomeText { get; set; }

然后我尝试在TextBlock上进行绑定:

Binding myBinding = new Binding(SomeText);
myTextBlock.SetBinding(TextBlock.TextProperty, myBinding);

如何保持TextBlock的Text属性与SomeText属性相同。


Binding myBinding = new Binding(SomeText); 应该改为 Binding myBinding = new Binding("SomeText"); 只需将 SomeText 用引号括起来即可。 - Fredrick Gauss
1个回答

47

使用BindingOperations

Binding binding = new Binding();
binding.Path = new PropertyPath("SomeText");
binding.Source = sourceObject;  // view model?

BindingOperations.SetBinding(theTextBlock, TextBlock.TextProperty, binding);

4
FrameworkElement有一个包装器来处理这个问题,这样会更简短。唯一的问题在于绑定路径的设置。 - H.B.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接