2009-02-20 11 views
6

Este método clic botón abre una ventana llamada "(assemblyname) .Reports" cuando un botón con contenido "Informes" se hace clic en:¿Cómo agregar atributos adicionales a los elementos XAML estándar?

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

pero quiero que el valor del atributo contenido del botón para poder cambiar , p.ej podría cambiar a "Informes de stock" pero aún quiero que haga clic en el botón para iniciar "(assemblyname) .Reports".

¿Hay alguna manera de agregar atributos a la etiqueta del botón, p. "TheWindowFileName"?

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

En caso negativo, ¿cómo puedo agregar información adicional a los elementos de mi botón que puedo leer y procesar en código?

Respuesta

10

Ciertamente puede utilizar attached properties añadir atributos adicionales a los elementos XAML, sino por lo que necesita que probablemente podría simplemente utilizar el Tag propiedad existente:

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

muy interesante, funciona muy bien para lo que necesitaba, ¿es posible agregar más de uno de estos? esta página de MSDN no es tan clara en él: http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.tag.aspx –

+0

No, Tag es una propiedad igual que Width o Content - it solo se puede usar una vez Para agregar el suyo, siga el enlace de propiedades adjunto. –

1

El uso de la propiedad adjunta aquí puede ser una exageración, pero en lugar de eso puede intentar encapsular el comportamiento de su botón en un Command y pasar los datos que desea utilizar en el comando como CommandParameter. Eso debería hacer el truco.

Cuestiones relacionadas