我有一個綁定到可觀察集合的tabControl。 在headerTemplate中,我想綁定到一個字符串屬性,並在contentTemplate中放置了一個用戶控件。tabControl中的多個userControl實例
下面是該MainWindow.xaml代碼:
<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;
}
}
所以(已指定一個ItemTemplate和一個控件模板)在這種情況下的問題是我只得到一個實例爲用戶控制,我想要爲每個綁定到的項目實例。
_「我想爲每件物品提供實例」_ - 請在此澄清您的需求。爲什麼你爲每個項目專門設立一個新實例?請具體說明一下:提供一個很好的[mcve],可以可靠地再現您的問題,並準確解釋代碼的作用以及與您希望執行的操作有何不同。 _(我很抱歉遲到... ...我只是跑過這個問題[回答不同的](http://stackoverflow.com/q/33125188);這可能是也可能不是我在另一個,所以我想我會要求澄清)。 – 2016-02-26 22:49:17