【发布时间】:2011-01-29 17:41:01
【问题描述】:
在 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);
}
}
如何在 Silverlight 4 中将父控件 (TabItem) 作为子控件的命令参数传入?
高度赞赏。
【问题讨论】:
标签: c# .net silverlight xaml controltemplate