绑定到WPF中某个属性的属性
本文关键字:属性 WPF 绑定 | 更新日期: 2023-09-27 18:29:11
我对WPF很陌生,它真的让我陷入了循环。我正在尝试绑定到自定义UserControl:上的成员
控制:
<UserControl
...
DataContext="{Binding RelativeSource={RelativeSource Self}}"
>
<Grid x:Name="TestControlRoot" HorizontalAlignment="Stretch" DataContext="TestControl" Margin="8">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Label Name="TitleLabel" Content="{Binding Path=esmTest.testName, Mode=OneWay}" HorizontalAlignment="Left" Foreground="White"/>
</StackPanel>
</Grid>
</UserControl>
控件背后的代码:
public partial class TestControl : UserControl
{
public static readonly DependencyProperty esmTestProperty = DependencyProperty.Register("esmTest", typeof(ESMTest), typeof(TestControl));
public ESMTest esmTest
{
get { return (ESMTest)GetValue(esmTestProperty); }
set { SetValue(esmTestProperty, value); }
}
public TestControl(ESMTest theTest)
{
InitializeComponent();
esmTest = theTest;
}
...
}
ESM测试类
public class ESMTest : DependencyObject
{
...
public static readonly DependencyProperty testNameProperty = DependencyProperty.Register("testName", typeof(string), typeof(ESMTest));
public string testName
{
get { return (string)GetValue(testNameProperty); }
set { SetValue(testNameProperty, value); }
}
}
运行此操作时,标签中没有任何内容。我在这里错过了什么?
此外,我发现很难找到关于WPF的良好信息来源,尤其是数据绑定。我可以找到超级基础教程,也可以找到关于如何解决特定问题的堆栈交换帖子。我很想写一篇关于WPF中数据绑定和DependencyObjects的全面文章,这样我就可以全面了解这些东西是如何工作的,以及我可能使用这些东西的许多不同方式。有人能推荐一个好的资源吗?
总结中的注释
<Grid ... DataContext="TestControl">
使用字符串TestControl覆盖上面设置的DataContext
。如果您要删除,那么您的绑定应该可以正常工作