我在WPF中创建了一个UserControl。此用户控件具有多个文本框,这些文本框绑定到数据库对象上的属性,该对象由UserControl上的proptery引用。 xaml看起来像:
<TextBox Name="_txtFirstName" Text="{Binding Path=Contact.FirstName, UpdateSourceTrigger=PropertyChanged}"/>
这一点正常,直到我将Contact属性设置为依赖属性,以便我可以将它绑定到ListBox中的选定项。一旦我这样做了TextBoxes的绑定停止工作。这是为什么?
DependencyProperty代码是:
public static readonly DependencyProperty ContactProperty = DependencyProperty.Register(
"Contact", typeof(Contacts), typeof(ContactView));
答案 0 :(得分:5)
我弄明白了这个问题。我忘了更改此代码:
public Contacts Contact
{
get { return _contact; }
set { _contact = value; }
}
对此:
public Contacts Contact
{
get { return (Contacts)GetValue(ContactProperty); }
set { SetValue(ContactProperty, value); }
}
现在它正常运作。
答案 1 :(得分:0)
我用Google搜索并找到this interesting page。您是否为您的依赖属性定义了CallBackHandler?