对作为 FrameworkElement 的值使用数据绑定
Posted
技术标签:
【中文标题】对作为 FrameworkElement 的值使用数据绑定【英文标题】:Using data binding on value which is a FrameworkElement 【发布时间】:2011-02-03 16:01:06 【问题描述】:我的一个数据源生成一组值,这些值被输入到以下接口
public interface IData
string Name get;
FrameworkElement VisualElement get;
我想在 WPF 中使用数据绑定在 TabControl
中显示 IData
实例的集合,其中 Name
值成为选项卡的标题,VisualElement
值显示为内容的相应选项卡。
绑定标题是直截了当的。我被困在如何定义一个允许我显示VisualElement
值的模板上。我尝试了许多解决方案,但收效甚微。我的最佳尝试如下。
<TabControl ItemsSource="Binding">
<TabControl.ItemTemplate>
<DataTemplate>
<Label Content="Binding Name"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
How do I display VisualElement here?
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
我对 WPF 还是很陌生,所以我可能会错过这里的明显内容。
【问题讨论】:
【参考方案1】:ContentPresenter
s 就是为此而生的。内容模板变为:
<TabControl.ContentTemplate>
<DataTemplate>
<ContentPresenter Content="Binding VisualElement" />
</DataTemplate>
</TabControl.ContentTemplate>
我使用TextBlock
和TextBox
对其进行了测试。
【讨论】:
像冠军一样工作!谢谢!以上是关于对作为 FrameworkElement 的值使用数据绑定的主要内容,如果未能解决你的问题,请参考以下文章
找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement。渐变停止