wpf usercontrol,将按钮的命令参数绑定到父用户控件

Posted

技术标签:

【中文标题】wpf usercontrol,将按钮的命令参数绑定到父用户控件【英文标题】:wpf usercontrol, bind command parameter of button to the parent usercontrol 【发布时间】:2010-11-21 14:54:58 【问题描述】:

我有一个包含删除按钮的 WPF UserControl,我想将整个 UserControl 作为 CommandParameter 传递。

当前绑定设置为 CommandParameter="Binding RelativeSource=RelativeSource Self" 这给了我按钮,但我怎样才能获得整个控件?

有人可以帮忙吗?

干杯,

安迪

<UserControl x:Class="GTS.GRS.N3.Controls.LabelledTextBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="100" />
        <ColumnDefinition Width="155" />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Label Name="label" HorizontalAlignment="Left" Width="96">Label</Label>
    <TextBox Name="textBox" Grid.Column="1" />
    <Button Grid.Column="2" Style="DynamicResource CloseButton" Command="Binding RemoveCommand" CommandParameter="Binding RelativeSource=RelativeSource Self" Visibility="Binding RemoveVisible"></Button>
</Grid>
</UserControl>

【问题讨论】:

【参考方案1】:

破解它...

<Button 
    Grid.Column="2" 
    Style="DynamicResource CloseButton"
    Command="Binding RemoveCommand"
    CommandParameter="Binding RelativeSource=
        RelativeSource FindAncestor, AncestorType=x:Type UserControl" 
    Visibility="Binding RemoveVisible" 
    />

【讨论】:

以上是关于wpf usercontrol,将按钮的命令参数绑定到父用户控件的主要内容,如果未能解决你的问题,请参考以下文章

通过WPF中的命令绑定使整个用户控件可单击

在 UserControl WPF MVVM caliburn 内的 UserControl 之间切换

WPF中UserControl控件的关闭

CATEL按钮未运行UserControl中的执行操作

如何从作为wpf mvvm模式中的窗口打开的视图模型中关闭用户控件?

UserControl在wpf中使用父元素?