WPF radiobutton事件处理问题
WPF radiobutton事件处理问题,wpf,events,Wpf,Events,radio.Checked+=新的路由EventHandler(Variatchecked) 假设我有这个代码。如果我想将一个参数传递给VariantChecked方法,该怎么办。我应该应用什么语法 在创建过程中,将数据对象附加到RadioButton的DataContext或Tag属性 RadioButton radio=new RadioButton(); radio.DataContext=yourData; 然后在事件处理程序中,取回数据: void VariantChecked(ob
radio.Checked+=新的路由EventHandler(Variatchecked)代码>
假设我有这个代码。如果我想将一个参数传递给VariantChecked方法,该怎么办。我应该应用什么语法 在创建过程中,将数据对象附加到RadioButton的DataContext或Tag属性
RadioButton radio=new RadioButton();
radio.DataContext=yourData;
然后在事件处理程序中,取回数据:
void VariantChecked(object sender, RoutedEventArgs e){
RadioButton radio=(RadioButton)sender;
YourData yourData=(YourData)radio.DataContext;
}
在上面的示例中,我假设您想要提供一个名为YourData的类或结构。您可以通过任何原语(如字符串、int或任何其他对象类型)来替换它
上述内容也适用于xaml:
<RadioButton Tag="Static Data, could also be a binding" ...
顺便说一下,您可以通过不指定具体的控件类而指定基类来使代码更通用:
void VariantChecked(object sender, RoutedEventArgs e){
FrameworkElement fe=(FrameworkElement)sender;
string yourStringFromTag=(string)fe.Tag;
}
希望这有帮助…在上一个示例中,您是如何使用标记附加属性的?是否可以将多个对象附加到它上?@Sergey:在第二个示例中,我是通过xaml实现的。在3。例如,我没有附上。这个例子只是为了说明您不必强制转换到具体类,还可以使用基类。如果要附加多个对象,请声明结构、容器类或使用元组类()
void VariantChecked(object sender, RoutedEventArgs e){
FrameworkElement fe=(FrameworkElement)sender;
string yourStringFromTag=(string)fe.Tag;
}