如何向标准XAML元素添加其他属性?

时间:2009-02-20 08:19:29

标签: wpf xaml

当点击内容为“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"/>

如果没有,我还能如何向我的按钮元素添加其他信息,我可以在后面的代码中阅读和处理这些信息?

2 个答案:

答案 0 :(得分:10)

当然你可以使用attached properties为XAML元素添加额外的属性,但是对于你需要的东西,你可以使用现有的Tag属性:

<Button x:Name="btnReports" Content="Stock Reports" Tag="Reports"/>

答案 1 :(得分:1)

在这里使用附加属性可能有点过分,但您可以尝试将按钮行为封装在Command中,并将要在命令中使用的数据作为CommandParameter传递。这应该可以解决问题。