Intereting Posts
Код Сначала с помощью Entity Framework вызывается исключение DbUpdateException при сохранении Edge: встроенное расширение In-Process и Windows.System.Launcher.LaunchFileAsync Очистить текст всех текстовых полей в выбранной вкладке Asp.Net не содержит определения для buttonClick? Почему все коллекции в моем POCO имеют значение null при десериализации некоторого действительного json с компонентом .NET Newtonsoft.Json Получить доменное имя URL-адреса в C # / .NET Masked TextBox Input Align Left Проблема с удалением роли приложения в AzureAD с использованием GraphAPI / C # Поток динамических zip-файлов с поддержкой резюме Не удалось загрузить файл или сборку «System.Web.Mvc, Version = 3.0.0.0» или одну из ее зависимостей Msgstr “Входная строка не в правильном формате”. Узнайте больше о том, как работает .NET Обнаружение WCF с хостами службы с использованием net.tcp: //0.0.0.0: 0 / blah объявляет net.tcp: //0.0.0.0: 0 / blah Доступ к информации об атрибутах из DTE Ожидаемые исключения NUnit

UserControl внутри ContentControl

можно ли вставить некоторый UserControl в ContentControl?

но мне нужно динамически решить, какой UserControl мне нужно вставить (например, с помощью DataTemplateSelector).

Да, вы можете поместить любой объект в ContentControl.Content , однако в зависимости от того, что определяет, какой UserControl вы хотите, существует несколько способов достижения этого.

Мой личный фаворит – пойти с DataTrigger который определяет ContentControl.ContentTemplate на основе некоторого условия

Вот пример, который основывает ContentControl.Content на выбранном значении ComboBox:

           

Это возможно. Вы должны иметь ContentControl , скажем так:

  

И тогда вам нужно иметь свой другой UserControl как эти два:

     

     

Если вы хотите изменить их динамически, вам нужно только программно изменить содержимое ContentMain ContentControl:

 // Initialize the content UserControl1 u1 = new UserControl1(); ContentMain.Content = u1; // Let's say it changes on a button click (for example) private void ButtonChangeContent_Click(object sender, RoutedEventArgs e) { UserControl2 u2 = new UserControl2(); ContentMain.Content = u2; } 

Более или менее это идея …;)