我通常从一个对象获取信息到它的事件处理程序的方式是使用它的DataContext
. 如果这对您来说是一个选择(很难说是不是),这是一件非常容易的事情。如果设置DataContext
了按钮的 (您可以很容易地从代码隐藏中执行此操作),您可以像这样访问它:
private void b_ClickMethod(object sender, RoutedEventArgs e)
{
// Let's say you're trying to pass a Car-object
var car = sender.DataContext as Car;
// Manipulate away.
}
您设置 DataContext 的方式是 - 非常简单:
CarViewModel someViewModel = new ViewModel(); // or whatever
Car someCarObject = someViewModel.getSomeCar(); // basically - find the object you would like to send.
btn.DataContext = someCarObject;
希望这可以帮助。最后,您可能需要重新考虑创建这样的按钮。如果您只在某些情况下需要按钮,只需将这些按钮的Visibility
参数设置为Visibility.Hidden
.