当点击内容为“Reports”的按钮时,此按钮单击方法启动一个名为“(assemblyname).Reports”的窗口:
private void Button_Click(object sender, RoutedEventArgs e)
{
Button button = (Button)e.OriginalSource;
Type type = this.GetType();
Assembly assembly = type.Assembly;
Window window = (Window)assembly.CreateInstance(String.Format("{0}.{1}", type.Namespace, button.Content));
window.ShowDialog();
}
但我希望按钮的内容属性值能够更改,例如它可能会更改为“Stock Reports”但我仍然希望单击该按钮以启动“(assemblyname).Reports”。
有没有办法为按钮标记添加属性,例如“TheWindowFileName”?
<Button x:Name="btnReports" Content="Stock Reports" TheWindowFileName="Reports"/>
如果没有,我还能如何向我的按钮元素添加其他信息,我可以在后面的代码中阅读和处理这些信息?
答案 0 :(得分:10)
当然你可以使用attached properties为XAML元素添加额外的属性,但是对于你需要的东西,你可以使用现有的Tag属性:
<Button x:Name="btnReports" Content="Stock Reports" Tag="Reports"/>
答案 1 :(得分:1)
在这里使用附加属性可能有点过分,但您可以尝试将按钮行为封装在Command中,并将要在命令中使用的数据作为CommandParameter
传递。这应该可以解决问题。