0
タブの項目にユーザコントロールを動的に読み込もうとしていますが、できません。以下のコードを使用しています。私は様々な投稿にもアクセスしていますが、私は間違っている場所:タブの項目にユーザコントロールをロードする
ユーザーコントロール:
<UserControl x:Class="WpfApplication1.UserControl2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApplication1"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<Button Content="welcome" Height="20" Width="70"></Button>
</Grid>
</UserControl>
のViewModel:
namespace WpfApplication1
{
class Usercontrol2ViewModel
{
public ObservableCollection<TabItem> Tabs { get; set; }
public Usercontrol2ViewModel()
{
Tabs = new ObservableCollection<TabItem>();
//Tabs.Add(new TabItem { Header = "Overview", Content = new OverviewViewModel() }); How to load a usercontrol here if it's in the ItemCollection?
Tabs.Add(new TabItem { Header = "Overview", Content = new UserControl2() });
}
}
public class TabItem
{
public string Header { get; set; }
public object Content { get; set; } // object to allow all sort of items??
}
}
メインページ:
<TabControl x:Name="MyTabControl"
ItemsSource="{Binding Tabs}">
<TabControl.Resources>
<DataTemplate DataType="{x:Type local:Usercontrol2ViewModel}">
<local:UserControl2></local:UserControl2>
</DataTemplate>
</TabControl.Resources>
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="Header" Value="{Binding Header}" />
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
上記正しいことが必要コードパッチのソリューションで見つかりましたまたはページのコードビハインドは私が尋ねる必要がある最初の質問です - あなたはどこにでもDataContextとしてVMを設定していますか? – MichaelThePotato
はい、つまりメインページの背後にあります – stylishCoder
@MichaelThePotato私は2つのタブを持っており、コンテンツはユーザーコントロールから読み込まれています.iiii ii tab1をクリックしてtab2を削除したいのですがどうすればいいですか? – stylishCoder