具有多个内容的WPF按钮

时间:2014-11-17 08:29:58

标签: wpf

我是WPF的新手,我在WPF windows应用程序中使用Button控件,我在数据库中显示其内容, 我的点击事件与其名称绑定,如此

 <Button Content="{Binding FirstName}"  HorizontalAlignment="Left" VerticalAlignment="Top" Margin="628,178,0,0" x:Name="btn1Click"/>

此按钮为每个用户提供不同的内容。 这是我的FirstName属性

string _fname;
        public string FirstName
        {
            get { return _fname; }
            set { _fname= value; NotifyOfPropertyChange("FirstName"); }
        }

我想获取被点击用户的ID,如何将UserID放入内容(带名字)? 或者在x:名称中,以便我可以识别哪个用户被点击了? 或者我可以使用一些隐藏的字段以及如何使用?

2 个答案:

答案 0 :(得分:0)

使用用户对象分配按钮父级的DataContext属性,然后在按钮的单击事件中写下代码。

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        Button item = sender as Button;
        if(item != null)
        {
            //you will get user details here by using item.DataContext property
            User clickedUser = item.DataContext  as User;
        }
    }

在这里,您将获得Clicked User的所有详细信息。

答案 1 :(得分:0)

您可以将属性绑定到commandParameter,并可以检查将命令绑定到事件处理程序的位置。像

<Button Command="{Binding BtnClickCommand}" CommandParameter="{Binding Id}" />

In ViewModel of this view:

BtnClickCommand=new RelayCommand(o=>BtnClickEvent((string)o));// Cast you id to whatever data type u have.


private void BtnClickEvent(string Id)
{
    //Here you got your id and do what u want..

}