none
一个控件的tag属性绑定该控件本体的xaml语法怎么写? RRS feed

  • 问题

  • 如题,

    例如使一个button的tag属性绑定该button本身,然后在点击事件中用sender取出button,在通过button的tag属性取出该button。这个xaml语法是怎么样的?


    • 已编辑 Trian555 2019年2月10日 10:50
    2019年2月9日 14:09

答案

  • CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}

    参考如上代码。该xaml代码就是用Command激活事件时所传递到ViewModel的实际参数内容为执行命令控件的本身,



    2019年2月11日 11:29

全部回复

  • public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                this.Loaded += MainWindow_Loaded;
            }
    
            private void MainWindow_Loaded(object sender, RoutedEventArgs e)
            {
                this.button.Tag = this.button;
                this.button.Click += Button_Click;     
            }
    
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                var currentButton = sender as Button;
    
                var btn = currentButton.Tag as Button;
            }
        }


    • 已编辑 ericzhou 2019年2月10日 5:33
    2019年2月10日 5:32
  • Hi Trian555,

    根据你的描述, 你是想对一个控件的tag使用绑定, 但是你说你想把button的tag属性绑定到该button本身, 然后在点击时间中用sender获得改button, 你为什么还要通过button的tag属性取得改button?我不是很理解你的意思。

    在WPF中, 如果你想使用绑定,你首先要清楚你的绑定源, 它是一个属性, 以下列子是将Button的tag属性绑定到自身的Content属性上。

    <Button
                Name="btn1"
                Width="200"
                Height="30"
                Content="test"
                Tag="{Binding RelativeSource={RelativeSource self}, Path=Content}" Click="btn1_Click" />
     private void btn1_Click(object sender, RoutedEventArgs e)
            {
                Button btn = (Button)sender;
                Console.WriteLine(btn.Tag);
    
                Console.WriteLine(btn1.Tag);
            }

    Best Regards,

    Cherry


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2019年2月11日 2:22
    版主
  • CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}

    参考如上代码。该xaml代码就是用Command激活事件时所传递到ViewModel的实际参数内容为执行命令控件的本身,



    2019年2月11日 11:29