Ошибка привязки WPF к теме AvalonDock

Я использую AvalonDock для своего приложения WPF и хочу использовать привязку данных для изменения темы.

Модель представления:

    private Theme _AvalonDockTheme = new ExpressionDarkTheme();
    public Theme AvalonDockTheme
    {
        get
        {
            return _AvalonDockTheme;
        }
        set
        {
            if (_AvalonDockTheme != value)
            {
                _AvalonDockTheme = value;
                RaisePropertyChanged("AvalonDockTheme");
            }
        }
    }

XAML:

<xcad:DockingManager AllowMixedOrientation="True"
        Theme="{Binding Source={StaticResource DockTheme}}" 
        x:Name="_dockingManager">
    <!-- some content -->
</xcad:DockingManager>

Когда я использую это, я получаю следующее сообщение об ошибке:

System.Windows.Data Error: 5 : Value produced by BindingExpression is not valid for target property.; Value='Xceed.Wpf.AvalonDock.Themes.ExpressionDarkTheme' BindingExpression:Path=MainViewModel.AvalonDockTheme; DataItem='App' (HashCode=47182344); target element is 'CollectionViewSource' (HashCode=42887454); target property is 'Source' (type 'Object')

Я не понимаю, почему привязка не работает. Источник и цель привязки имеют тип Xceed.Wpf.AvalonDock.Themes.Theme, но в сообщении об ошибке говорится, что целевой элемент имеет тип CollectionViewSource. Почему?


person user37337    schedule 04.09.2013    source источник


Ответы (1)


Взгляните на этот вопрос:

Привязка CollectionViewSource в DataTemplate

Если это не поможет, предоставьте определение ресурса DockTheme.

person Ivan Peric    schedule 04.09.2013
comment
Спасибо. Ты открыл мне Глаза. Это была ошибка копирования-вставки. Я объявил ресурс как CollectionViewSource, потому что использовал его для списка в другом окне. Я много раз контролировал этот ресурс, но не видел его. Нет, я изменил его на DataContext. - person user37337; 04.09.2013