如何创建继承DataContext的WPF DependencyProperty?

时间:2016-08-21 21:11:45

标签: wpf

我创建了一个具有可在xaml中指定的依赖项属性的类。 E.g:

public class ToolWindowView : UserControl
{
    public static readonly DependencyProperty TabTitleProperty = DependencyProperty.Register("TabTitle", typeof(object), typeof(ToolWindowView));

这很好用,我可以创建从ToolWindowView派生的控件并设置TabTitle。

<tw:ToolWindowView x:Class="..." x:ClassModifier="internal"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:tw="clr-namespace:..."
         tw:ToolWindowView.TabTitle="My title">

但是当我尝试创建一个带有绑定作为DependencyProperty值的xaml元素时,DataContext为null并且绑定失败:

<tw:ToolWindowView x:Class="..." x:ClassModifier="internal"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:tw="clr-namespace:...">
<tw:ToolWindowView.TabTitle>
     <TextBlock Text="{Binding MyText}"/>
</tw:ToolWindowView.TabTitle>

我想我理解原因是因为依赖属性不是逻辑树的一部分。我可以使用AddLogicalChild将DependencyProperty的值添加到逻辑树中,然后将其设置为可行,但是当我将逻辑子项添加到树中时,或者如果这是偶数时,它并不明显正确的方式。它看起来要复杂得多。有没有人知道如何正确地做到这一点,或者知道这方面的教程?

0 个答案:

没有答案