Измените содержимое ContentControl нажатием кнопки

У меня есть ContentControl, который привязан к этому DataTemplateSelector:

public class PropertyPageTemplateSelector : DataTemplateSelector
{
    protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
    {
        if (item == null) return base.SelectTemplateCore(item, container);

        var contentControl = (ContentControl)container;
        var templateKey = (string)item;

        return (DataTemplate)contentControl.Resources[templateKey];
    }
}

Как я могу изменить загруженный ресурс в ContentControl одним нажатием кнопки? Я не могу вызвать метод напрямую, потому что он защищен...


person Cilenco    schedule 01.05.2013    source источник


Ответы (1)


Поскольку элемент является строкой, содержимое ContentControl является строкой. Все, что вам нужно сделать, это изменить содержимое ContentControl на нужную строку.

person Murkaeus    schedule 01.05.2013
comment
Хорошо, спасибо, это работает, но как я могу изменить контент из другого класса? - person Cilenco; 01.05.2013
comment
@Cilenco На этот вопрос трудно ответить, так как это действительно вопрос об архитектуре приложения, но стандартной практикой является создание класса, который будет действовать как модель представления для страницы, на которой вы находитесь, со свойством, к которому будет привязано содержимое вашего ContentControl. Взгляните на этот образец и посмотрите, поможет ли он: ссылка - person Murkaeus; 02.05.2013