2010-07-18 29 views
7

Como dije en another post, acceso a veces controles directamente desde el código detrás. Si hago esto nombro los controles como lo hago también en ControlTemplates y DataTemplates, les doy el prefijo PART_ y después de que precisa el nombre, por ejemplo ...Denominación de WPF-Controls en Marcado

<TextBox Name=”PART_UserName” /> 

Es esto en contra de una denominación WPF común ¿esquema? Anteriormente he usado el prefijo m_ seguido por la descripción ...

<TextBox Name=”m_userName” /> 

.. porque en realidad es exactamente esto, pero no me gustó. ¿Qué opinas? Tenga en cuenta que no quiero discutir si usar MVVM o no. Hay situaciones que no me importan.

Respuesta

11

El patrón PART_<name> se usa cuando escribe controles personalizados que se pueden repreguntar. Estos son los nombres de las partes obligatorias de la plantilla, sin las cuales el control no puede funcionar. Estos nombres se declaran por lo general con un atributo [TemplatePart] en C# código:

[TemplatePart(Name = "PART_TextBox", Type = typeof(TextBox))] 
[TemplatePart(Name = "PART_UpButton", Type = typeof(Button))] 
[TemplatePart(Name = "PART_DownButton", Type = typeof(Button))] 
public class NumericUpDown : Control 
{ 
    ... 

    protected override OnApplyTemplate() 
    { 
     base.OnApplyTemplate(); 

     // Find controls in the template 
     TextBox textBox = Template.FindName("PART_TextBox", this) as TextBox; 
     Button upButton = Template.FindName("PART_UpButton", this) as Button; 
     Button downButton = Template.FindName("PART_DownButton", this) as Button; 

     // Do something with the controls... 
     ... 
    } 

    ... 
} 

Así que a menos que usted está escribiendo una plantilla de control, no hay razón para usar ese patrón de nombres. Simplemente nombra tus controles como quieras, siempre y cuando tenga sentido para ti.

Cuestiones relacionadas