Я хочу создать пользовательскую панель, в которой элементы отображаются в виде кнопок с кнопкой закрытия (x) внутри.До сих пор я создавал пользовательский элемент управления, который наследуется от ItemsControl, и настраивал шаблоны для элементов и панели элементов следующим образом:
XAML:
<ItemsControl x:Class="SandBox1.CustomControls.WorkspacePanel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel IsItemsHost="True" Orientation="Horizontal" HorizontalAlignment="Left"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Name}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Codebehind:
public partial class WorkspacePanel : ItemsControl
{
public WorkspacePanel()
{
InitializeComponent();
}
}
Однако, когда я устанавливаю ItemsSource, я ничего не получаю.Любая помощь?
РЕДАКТИРОВАТЬ
Использование пользовательского элемента управления:
<cc:WorkspacePanel ItemsSource="{Binding Path=Workspaces}"/>
Рабочие пространства имеют тип ObservableCollection<WorkspaceModel>
, а WorkspaceModel:
public class WorkspaceModel
{
public WorkspaceModel(string name, bool isActive)
{
this.Name = name;
this.IsActive = isActive;
}
public bool IsActive { get; set; }
public string Name { get; set; }
}