【发布时间】:2011-10-02 16:14:24
【问题描述】:
我搜索了档案寻求帮助,但找不到任何足够具体的内容来解决我的特定问题。
我有一个使用 MVVM 绑定数据的 TreeView,一切看起来都很好。我想扩展功能,以便我认为对 TreeView 项目使用用户控件会很好。
这是 TreeViewItems 使用的分层数据模板的 XAML 代码:
<HierarchicalDataTemplate
DataType="{x:Type vm:SiteViewModel}"
ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding SiteName}"/>
</StackPanel>
</HierarchicalDataTemplate>
我想用我的用户控件替换 TextBlock:
<uc:MyTextBlock InternalText="{Binding SiteName}"/>
用户控件(目前)只包含另一个 TextBlock,并且有一个名为 InternalText 的依赖属性,即
<TextBlock Text="{Binding Path=InternalText}" />
我将用户控件的构造函数中的 DataContext 设置为自身:
public MyTextBlock ()
{
InitializeComponent();
DataContext = this;
}
这不起作用,但是如果我只是更改模板以指定静态文本,它似乎可以正常工作:
<uc:MyTextBlock InternalText="Some site name"/>
那么如何让绑定的数据传递给用户控件呢?这可能很简单,但我是 WPF 新手,所以我还没有解决。
谢谢!
【问题讨论】:
标签: wpf data-binding mvvm user-controls treeview