我在WPF中建立一个UserControl。控件有两个属性Title和Description,我想绑定到两个文本块。看起来很直接,我得到它的工作,但我很好奇。为了得到它的工作,我不得不添加以下代码:数据绑定到自己没有代码
void CommandBlock_Loaded(object sender, RoutedEventArgs e)
{
this.DataContext = this;
}
我的绑定是这样的:
<TextBlock Text="{Binding Title}" Width="100" ... />
<TextBlock Text="{Binding Description}" Width="100" ... />
什么我不知道是怎么来的我无法得到它没有工作this.DataContext = this;
,而是使用DataContext="{Binding RelativeSource={RelativeSource Self}}"
(在标记的UserControl元素中)?我确信我错过了DataContexts的一些东西,但不知道是什么。
我认为你是对的,我添加了'公共静态DependencyProperty TitleProperty = DependencyProperty.Register( “标题”,typeof(字符串),typeof(TheUserControl));'它工作。尽管如此,我还是认为wpf在这方面会更聪明一些,而且不在乎财产何时更新,只是它是否是。 – jcollum 2010-06-17 20:16:59
无法正常工作:属性是在设计时设置的,但这些值从未在用户控件上填充。 – jcollum 2010-06-17 20:17:41
我认为你是对的...我对WPF很新,但我记得在某个地方看到这个。我真的认为我可以通过属性装饰来实现这一点。 – jcollum 2010-06-17 21:57:18