У меня есть UserControl в wpf 4.0, который содержит кнопки, метки, текстовые поля и т.д ....
Я хочу зациклить эти элементы управления, и когда я получаю buuton, я хочу взять его имя и сохранить его в моем списке. По сути, все, что я хочу сделать, - это создать Names_list для всех моих кнопок в UserControl.
У меня есть метод, который перебирает все элементы управления, и если он находит кнопку, он сохраняет свое имя -
public void EnumVisual(Visual myVisual)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(myVisual); i++)
{
// Retrieve child visual at specified index value.
Visual childVisual = (Visual)VisualTreeHelper.GetChild(myVisual, i);
Button _button = childVisual as Button;
if (_button != null)
{
Class_Button _newButtonClass = new Class_Button();
if (_button.Name != null)
{
_newButtonClass.ButtonName = _button.Name;
}
ButtonsList.Add(_newButtonClass);
}
// Enumerate children of the child visual object.
EnumVisual(childVisual);
}
}
Я всегда получаю пустой список.
Когда я вхожу в код, отлаживая его, и смотрю VisualTree моего UserControl, я вижу все панели и групповые ящики и сетки, но не вижу кнопок, меток и текстовых окон, хотя у каждого элемента управления есть ax: Name, и каждый элемент управления x: FieldModifier = "общественность". Это очень странно .... И я не могу понять причину этого, а также как решить эту проблему ...
кто-нибудь может сказать, что я делаю не так?
спасибо