我有一个主程序,它有一个tabControl
。我正在尝试创建一个可以添加到userControl
中的tabItem
。我的目标是将一个tabControl
添加到userControl
中,但是我得到了这个错误:
'[Unknown]' property does not point to a DependencyObject in path '(0).(1)[1].(2)'.
代码在userControl中非常简单
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TabControl>
<TabItem>
</TabItem>
</TabControl>
</Grid>
如何创建userControl
,使其能够包含tabControl
,然后添加到tabItem
中的mainForm中
发布于 2022-09-01 01:25:18
UserControl1.xmal
<UserControl x:Class="WpfApp1.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TabControl x:Name="tabControl">
</TabControl>
</Grid>
</UserControl>
UserControl.cs
public partial class UserControl1 : UserControl
{
public List<TabItem> TabItem { get; set; } = new List<TabItem>();
public UserControl1()
{
InitializeComponent();
}
public override void OnApplyTemplate()
{
foreach (TabItem tabItems in TabItem)
tabControl.Items.Add(tabItems);
base.OnApplyTemplate();
}
}
MainWindow.xaml
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp1"
Height="450" Width="800">
<Grid>
<local:UserControl1 Height="200" Width="200">
<local:UserControl1.TabItem>
<TabItem Header="Tab1">
<TextBox/>
</TabItem>
<TabItem Header="Tab2">
<TextBox/>
</TabItem>
</local:UserControl1.TabItem>
</local:UserControl1>
</Grid>
</Window>
在这种情况下,TextBox不能通过x:Name="“访问,
因为TextBox是UserControl的孩子,而不是MainWindow的孩子。
https://stackoverflow.com/questions/73561741
复制相似问题