正如我在another post中所述,我有时会直接从后面的代码中进行控制。如果我这样做,我将控件命名为ControlTemplates和DataTemplates,我给它们前缀 PART _ ,然后我精确地命名,例如......
<TextBox Name=”PART_UserName” />
这是针对常见的WPF命名方案吗?以前我使用前缀 m _ ,然后是描述...
<TextBox Name=”m_userName” />
..因为实际上它正是这个,但我不喜欢它。 你怎么看? 请注意,我不想讨论是否使用MVVM。有些情况我不在乎。
答案 0 :(得分:11)
编写可重新导入的自定义控件时,将使用模式PART_<name>
。这些是模板的强制部分的名称,没有它们,控件就无法工作。这些名称通常在C#代码中用[TemplatePart]
属性声明:
[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...
...
}
...
}
因此,除非您正在编写控件模板,否则没有理由使用该命名模式。只要对你有意义,只需将你的控件命名为你。