Скопируйте элемент управления WPF программно - PullRequest
8 голосов
/ 07 июля 2010

У меня есть элемент управления вкладкой, и когда пользователь хочет добавить к нему, я хочу скопировать пару уже существующих элементов (не просто ссылаться на них). Теперь я просто скопировал нужные мне переменные. Но в коде автоматического определения размера я обнаружил, что скопированный элемент заметно отстает от оригинала при изменении размера окна. Кроме того, просто невозможно продолжать копировать каждый элемент, который мне нужно скопировать, по мере роста этого списка. Есть ли какой-нибудь метод, который я могу использовать, чтобы скопировать элемент управления WPF? Сейчас это просто текстовое поле и элемент вкладки.

Ответы [ 2 ]

11 голосов
/ 07 июля 2010

Я не могу точно сказать, что вы пытаетесь сделать, но если вам нужен новый экземпляр, идентичный существующему экземпляру элемента управления, вы можете использовать XamlWriter и XamlReader для сериализации / десериализации элемента управления:

MyControl copy = XamlReader.Parse(XamlWriter.Save(controlInstance)) as MyControl;
11 голосов
/ 07 июля 2010

Возможно, я неправильно понимаю ваш вопрос, но вы можете создать собственный UserControl, и всякий раз, когда вам нужно добавить новый элемент управления, просто создайте новый экземпляр этого элемента управления и добавьте его в свою сцену, так что вы можете использовать DataContext, чтобы помочь с привязкой данных, которую вы можете использовать из контроля вашего копирования:

MyControl newControl = new MyControl { DataContext = controlToCopy.DataContext };
myGrid.Children.Add(newControl);

или подобное ...

или вам нужно, чтобы он был более динамичным?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...