您好,我尝试创建一个自定义的TabItem与删除按钮,我想绑定我的viewmodel命令到我的自定义依赖属性'DeleteCommandProperty'。有人能告诉我我做错了什么吗?带删除按钮绑定的WPF自定义TabItem问题
我的自定义的TabControl:
/// <summary>
/// TabControl withCustom TabItem
/// </summary>
public class MyTabControl:TabControl
{
/// <summary>
/// TabItem override
/// </summary>
/// <returns></returns>
protected override DependencyObject GetContainerForItemOverride()
{
return new MyTabItem();
}
}
我的自定义的TabItem类:
/// <summary>
/// Custom TabItem
/// </summary>
public class MyTabItem:TabItem
{
/// <summary>
/// Delete Command
/// </summary>
public static DependencyProperty DeleteCommandProperty = DependencyProperty.Register(
"DeleteCommand",typeof(ICommand),typeof(MyTabItem));
/// <summary>
/// Delete
/// </summary>
public ICommand DeleteCommand
{
get { return (ICommand)GetValue(DeleteCommandProperty); }
set { SetValue(DeleteCommandProperty, value); }
}
}
当我直接绑定的DeleteCommand这样我在我的视图模型,执行指令
<customControls:MyTabControl>
<customControls:MyTabItem Header="Test" DeleteCommand="{Binding DeleteStudiengangCommand}" Template="{DynamicResource MyTabItemControlTemplate}"/>
</customControls:MyTabControl>
BU当试图像这样通过样式绑定deleteCommand但它不起作用:
<Style TargetType="customControls:MyTabItem">
<Setter Property="Template" Value="{DynamicResource MyTabItemControlTemplate}"/>
<Setter Property="DeleteCommand" Value="{Binding MyDeleteCommand}"/>
</Style>
<customControls:MyTabControl ItemsSource="{Binding MyList}" SelectedItem="{Binding SelectedItem}" SelectedIndex="0">
<customControls:MyTabControl.ContentTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Value}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</DataTemplate>
</customControls:MyTabControl.ContentTemplate>
</customControls:MyTabControl>
考虑将其降低到[MVCE](http://stackoverflow.com/help/mcve)。例如,不要尝试在你的样式中绑定'DeleteCommand',除非它是显示你的问题的必要条件......相反,在你的构造函数中分配一个静态命令 – grek40
我看到你以某种方式编辑了你的问题,但它很远从最小**(你用很多与你的问题无关的模板),远不是**可验证**(我用你的基于样式的命令setter创建了一个小例子,它工作得很好),远从**完整**(其中是'customControls:MyTabControl'的代码?另外,请不要强迫我使用Blend),并且你没有真正解释观察到的行为与预期的行为形成对比,所以也没有**例子**。 – grek40
我添加了我的TabControl类,并试图解释什么没有工作希望有人可以帮助 – Johannes