관찰 가능한 컬렉션에 바인딩 된 tabControl이 있습니다. headerTemplate에서 문자열 속성에 바인딩하고 싶습니다. contentTemplate에서 사용자 정의 컨트롤을 배치했습니다.tabControl의 여러 userControl 인스턴스
<Grid>
<Grid.Resources>
<DataTemplate x:Key="contentTemplate">
<local:UserControl1 />
</DataTemplate>
<DataTemplate x:Key="itemTemplate">
<Label Content="{Binding Path=Name}" />
</DataTemplate>
</Grid.Resources>
<TabControl IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding Path=Pages}"
ItemTemplate="{StaticResource itemTemplate}"
ContentTemplate="{StaticResource contentTemplate}"/>
</Grid>
그리고 뒤에 해당 코드 :
이public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new MainWindowViewModel();
}
}
public class MainWindowViewModel
{
public ObservableCollection<PageViewModel> Pages { get; set; }
public MainWindowViewModel()
{
this.Pages = new ObservableCollection<PageViewModel>();
this.Pages.Add(new PageViewModel("first"));
this.Pages.Add(new PageViewModel("second"));
}
}
public class PageViewModel
{
public string Name { get; set; }
public PageViewModel(string name)
{
this.Name = name;
}
}
그래서 (A ControlTemplate이뿐만 아니라 ItemTemplate을 지정하는 데)이 시나리오에서 문제가 여기에
는하여 MainWindow.xaml에 대한 코드입니다 그 경우에만 하나의 인스턴스를 사용자 정의 컨트롤로 가져옵니다. 여기서 바인딩되는 각 항목에 대한 인스턴스를 갖고 싶습니다.
_ "각 항목에 대한 인스턴스를 갖고 싶습니다."- 여기에 필요를 명확히하십시오. _Why_ 구체적으로 각 항목에 대해 하나의 새 인스턴스를 만드시겠습니까? 구체적으로 말하자면, 문제를 확실하게 재현 할 수있는 좋은 [mcve]를 제공하고, 코드가 무엇을하는지, 어떻게 그것이 원하는 것과 다른지를 정확하게 설명하십시오. _ (늦은 시간에 chiming에 대한 사과 ... 나는이 질문을 건너 뛰었을 뿐이었다. (http://stackoverflow.com/q/33125188); 다른 하나, 그래서 나는 명확히 해달라고 요청했다.) _. –