Привет, я пытаюсь создать собственный TabItem с кнопкой удаления, я хочу связать свою команду модели представления с моим пользовательским свойством зависимости 'DeleteCommandProperty'. Может кто-нибудь сказать мне, что я делаю неправильно?
мой пользовательский 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 напрямую, как это, моя команда в моей ViewModel выполняется
<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>
DeleteCommand
в своем стиле, если только это не необходимо для демонстрации вашей проблемы... Вместо этого назначьте статическую команду в своем конструкторе - person grek40   schedule 27.04.2016customControls:MyTabControl
? Кроме того, пожалуйста, не заставляйте меня использовать Blend) и вы на самом деле не объясняете наблюдаемое поведение в отличие от ожидаемого поведения, поэтому пример также не приводится. - person grek40   schedule 27.04.2016