2011-12-08 72 views
0

所以我有一个String属性绑定到一个文本框的Text属性里将无法正常工作,它工作正常 -数据绑定适用于字符串,但字符串对象

public String MyString { get; set; } 
MyString = "Hello World"; 
<TextBox Text="{Binding Path=MyString}".... 

然而,当我尝试绑定使用对象不起作用里面串......像这样

public class MyObject 
{ 
    public String MyString { get; set; } 
} 

MyObject myObject = new MyObject(); 
myObject.MyString = "Hello World"; 
<TextBox Text="{Binding Path=myObject.MyString}"... 

我不明白为什么这是不具有约束力。我所做的全部都是将字符串放在一个类中,然后更改xaml以反映这一点。任何想法出了什么问题?

+0

检查输出窗口的BindingExpression错误并在这里发布 – cordialgerm

回答

1

你需要与你的ViewModel属性暴露myObject的实例,而不是仅仅使用的局部变量(根据您发布的代码,您似乎正在执行此操作)。事情是这样的:

public MyObject Obj { get; set; } 

Obj = new MyObject() { MyString = "Hello World" }; 

,并在您的XAML:

<TextBox Text="{Binding Path=Obj.MyString}" ... 
+0

干杯队友做到了 –

0

在绑定发生后您可能正在进行更改,并且由于您没有出现在implementINPC一旦设置了字符串/对象,绑定就没有更新。

(你也可能想看看the overview如果您不熟悉的绑定。)

0

我与约翰同意。您应该使用INotifyPropertyChanged或Dependency属性将属性正确绑定到您的UI。绑定工作的可能性很大,但显示为空字符串,因为绑定发生在设置值之前。

你什么时候设置你的DataContext?

相关问题