gpt4 book ai didi

wpf - 为什么 WPF 不能绑定(bind)到 UserControl 属性?

转载 作者:行者123 更新时间:2023-12-04 16:14:22 25 4
gpt4 key购买 nike

public class Meh : DependencyObject
{
public static readonly DependencyProperty MyPropertyProperty =
DependencyProperty.Register("MyProperty", typeof(string), typeof(Meh));

public string MyProperty
{
get { return (string)GetValue(MyPropertyProperty); }
set { SetValue(MyPropertyProperty, value); }
}
}

现在我使用以下代码将其数据绑定(bind)到选项卡控件
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
var data = new List<Meh>();
data.Add(new Meh { MyProperty = "One" });
data.Add(new Meh { MyProperty = "Two" });
TabControlViews.ItemsSource = data;
}
}

选项卡控件的 XAML 如下所示
<TabControl Name="TabControlViews">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding MyProperty}"/>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>

这工作正常,选项卡“一”、“二”出现在选项卡控件上。但是,如果我将 Meh 的基本类型从 DependencyObject 更改为 UserControl,则选项卡为空白。为什么是这样?

最佳答案

编辑

我检查了您的代码,似乎在运行时, TabItem 的 ContentPresenter 不会从 TabControl 继承 DataContext,只要要显示的项目是 Visual 类型或派生自它。

这闻起来像一些 TabControl 有趣的行为,因为用 ListBox 替换 TabControl 可以正常工作。
至于问题的具体原因,我不清楚。

关于wpf - 为什么 WPF 不能绑定(bind)到 UserControl 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1130189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com