Как добавить дополнительные атрибуты к стандартным элементам XAML? - PullRequest
6 голосов
/ 20 февраля 2009

Этот метод нажатия кнопки запускает окно с именем "(имя сборки) .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();
}

Но я хочу, чтобы значение атрибута контента кнопки можно было изменить, например, он может измениться на «Отчеты о запасах», но я все еще хочу, чтобы нажатие кнопки запускало «(имя сборки). Отчеты».

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

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

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

Ответы [ 2 ]

10 голосов
/ 20 февраля 2009

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

<Button x:Name="btnReports" Content="Stock Reports" Tag="Reports"/>
1 голос
/ 20 февраля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...