代码中无法识别 WPF CommandParameter
Posted
技术标签:
【中文标题】代码中无法识别 WPF CommandParameter【英文标题】:WPF CommandParameter is not recognized in code 【发布时间】:2014-09-21 08:08:45 【问题描述】:这是一个 WPF 应用程序。按钮为空且无法识别 CommandParameter。我不知道如何解决这个问题。有任何想法吗? 这是代码:
private void Button_Click(object sender, RoutedEventArgs e)
var button = (Button) sender;
var userName = button.CommandParameter;
<TabControl Name="ImTabControl"
Width="670"
Height="450"
Margin="0,10,5,0"
HorizontalAlignment="Right"
VerticalAlignment="Top"
ItemsSource="Binding">
<TabControl.Resources>
<DataTemplate x:Key="TabHeader" DataType="TabItem">
<StackPanel Orientation="Horizontal">
<TextBlock Margin="0,0,5,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="Binding RelativeSource=RelativeSource AncestorType=x:Type TabItem,
Path=Header" />
<Button Name="ImButton"
Click="CloseTabButton_OnClick"
CommandParameter="Binding RelativeSource=RelativeSource AncestorType=x:Type TabItem,
Path=Name">
<Image Width="7"
Height="7"
Source="../Resources/Images/CloseWindow.png" />
</Button>
</StackPanel>
</DataTemplate>
</TabControl.Resources>
</TabControl>
【问题讨论】:
你的 AncestorType 需要是 TabControl 吗? 你为什么要绑定CommandParameter
而没有Command
属性?
【参考方案1】:
我已将 CommandParameter 更改为 Tag 并将 sender as Button 更改为 (FrameworkElement)sender。
Tag="Binding RelativeSource=RelativeSource AncestorType=x:Type TabItem, Path=Name">
var button = (FrameworkElement)sender;
var tabName = button.Tag as string;
【讨论】:
以上是关于代码中无法识别 WPF CommandParameter的主要内容,如果未能解决你的问题,请参考以下文章