Надеюсь, это не похоже на странный вопрос или что-то, чего следует избегать, но возможно ли сделать экземпляр элемента управления публичным, чтобы его можно было использовать в других классах?Можно ли публиковать экземпляр пользовательского контроля?
Например, в XAML Пользователь управления устанавливается
<local:MyControl x:Name="ControlName" />
которые могут быть доступны на том же коде-за простым вызовом ControlName.UseMethod();
так же, как любые экземпляры классов, которые я хотел бы сделать.
Теперь, хотя я мог бы объявить экземпляр нормальных классов в коде как открытый, тогда свободно его использовать, у меня нет возможности сделать это здесь, поскольку он объявлен в XAML, который я могу " t публиковать напрямую.
Мне нужно иметь доступ к содержимому пользовательского элемента управления в других разделах программы и не использовать методы, которые мне нужны, как статические.
Мой опыт в программировании очень мало, изучая книги и небольшие проекты, которые могут объяснить любые странности в вопросе. Надеюсь, все в порядке.
Благодаря
Это, если вы можете сказать мне, что я могу сделать Google, чтобы сделать это лучше, я был бы благодарен. Просто все, что может получить доступ к элементам управления, которые находятся на экземпляре пользовательского элемента управления, чтобы я мог обновлять их во время выполнения. По крайней мере, это так хорошо, как я могу это объяснить. – Gilgamesh
@Gilgamesh Вы правы, что 'UserControl' - это класс, как любой другой, но опять же, так же как и' TextBox'. Основная концепция здесь заключается в том, что элементы управления формы очень * намеренно * закрыты. Нет никаких оснований напрямую подвергать их другим объектам, так как это затрудняет связь * way *. Если вы решите это сделать, просто используйте метод свойств, который я вставляю в свой ответ (опять же, это означает, что ваш дизайн в реальной ситуации). Что касается этого лучше, посмотрите на шаблон MVVM. Вот стартовая точка: https://msdn.microsoft.com/en-us/library/gg405484%28v=pandp.40%29.aspx – BradleyDotNET
А я понимаю, что вы имеете в виду. Я не буду проходить через этот маршрут, потому что я не хочу подбирать неприятные практики. Кроме того, я избегал попытки использовать MVVM-материал из-за попытки сократить кривую обучения с помощью WPF, но я вижу, что делать это было не так уж хорошо. Спасибо за помощь. – Gilgamesh