В стиле TabItem у меня есть кнопка.Эта кнопка имеет команду, которую я хотел бы отправить (родительский) TabItem.В Silverlight у нас нет RelativeSource.Но я не могу просто использовать Elementname.потому что у моего TabItem нет имени в стиле.
<Style TargetType="sdk:TabItem">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding TabCaption}"/>
<Button Margin="8,0,0,0"
Command="local:Commands.CloseTabItem"
CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type sdk:TabItem}}}"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center">
</Button>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
Это будет код в методе Команды:
private void OnCloseTabItemExecute(object sender, ExecutedRoutedEventArgs e)
{
TabItem parent = e.Parameter as TabItem;
if (parent != null)
{
FrameworkElement view = (parent as TabItem).Content as FrameworkElement;
string regionName = RegionManager.GetRegionName(view);
_regionManager.Regions[regionName].Remove(view);
}
}
Как передать родительский элемент управления (TabItem) в качестве параметра дочернего элемента управления в Silverlight 4?
высоко ценится.