【发布时间】:2011-12-14 21:28:03
【问题描述】:
我有一个名为“RFPGegevens”的自定义 WPF 属性类
public class RFPGegevens
{
private string _klant;
public String Klant
{
get { return _klant; }
set { _klant = value; }
}
}
在我的 ViewModel 中,我有一个属性 RFPGegevens
private RFPGegevens _rfpGegevens;
public RFPGegevens RfpGegevens
{
get
{
if (_rfpGegevens == null)
_rfpGegevens = new RFPGegevens();
return _rfpGegevens;
}
set
{
_rfpGegevens = value;
base.RaisePropertyChangedEvent("RfpGegevens");
}
}
这个属性填写正确,如果我调试这是结果:
在我的视图中,我将属性“RFPGegevens”绑定到我的网格的数据上下文
<Grid DataContext="{Binding RfpGegevens}">
如果我调试“Klant”属性字段,仍然会被填充。
但是当我在视图中绑定这个属性时,我的文本框仍然是空的。
<TextBox Text="{Binding Klant, Mode=TwoWay}"/>
我也试过了,但似乎没什么用:
<TextBox Text="{Binding RFPGegevens.Klant, Mode=TwoWay}"/>
不知道我做错了什么。
在此先感谢 ;)
【问题讨论】:
-
你在哪里调试了get-accessor?是否确保它由 WPF 为 TextBox-Binding 调用? VS 中的输出窗口在运行时对绑定有什么说明?
-
你设置的windows datacontext绑定正确吗?
-
您的 ViewModel 是否实现了 INotifyPropertyChanged,我看到您正在调用 base.RaisePropertyChanged。
-
我实现了 INotifyPropertyChanged 并且正确绑定了 windows 数据上下文。对于 Andreas,您能否重述您的问题?
-
所以如果你把一个文本框放在网格之外它绑定是正确的吗?快速检查一下..
使用 RFP 而你的道具被命名为 Rfp