Как добавить дополнительные атрибуты к стандартным элементам XAML?

этот метод нажатия кнопки запускает окно под названием " (assemblyname).Отчеты " при нажатии кнопки с содержимым "отчеты":

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();
}

но я хочу, чтобы значение атрибута содержимого кнопки могло измениться, например, оно может измениться на "отчеты о запасах", но я все еще хочу, чтобы нажатие кнопки запускало " (assemblyname).Подотчетный."

есть ли способ добавить атрибуты в тег кнопки, например "TheWindowFileName"?

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

Если нет, то как еще могу ли я добавить дополнительную информацию к элементам кнопки, которые я могу читать и обрабатывать в коде?

2 ответов


конечно, вы можете использовать свойства чтобы добавить дополнительные атрибуты к элементам XAML, но для того, что вам нужно, вы, вероятно, можете просто использовать существующий Tag свойства:

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

использование вложенного свойства здесь может быть излишним, но вместо этого вы можете попытаться инкапсулировать свое поведение кнопки в команда и передайте данные, которые вы хотите использовать в команде, как CommandParameter. Это должно сработать.