假设我有一个名称为 myComboBox 的ComboBox。
现在,如果我声明另一个ComboBox引用,请说:
ComboBox curBox=new ComboBox();
curBox.Name = curCombo; // curCombo is a string whose value is myComboBox.
curBox 会不会成为别名,直接引用 myComboBox 。
答案 0 :(得分:2)
WPF控件的name属性仅用于填充XAML标记中的name属性。它应该是唯一的,因为它提供了对您的控件的(高级)引用(您可以通过名称找到您的控件)。
在您的示例中,myComboBox和curBox是ComboBox的两个独立实例,它们只是共享相同的名称。这是不允许的,因为名称在Namescope中应该是唯一的。 See here了解有关此主题的更多信息。
答案 1 :(得分:1)
Rewinder是对的,只想添加:
在代码中设置curBox.Name
不会自动将此控件添加到当前的Namescope。因此,设置它应该不是问题。要将其添加到名称范围,您可以使用RegisterName,如果“提供的名称会导致重复的名称注册”,则会ArgumentException
。