我是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:名称中,以便我可以识别哪个用户被点击了? 或者我可以使用一些隐藏的字段以及如何使用?
答案 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..
}