AvalonDock 2 с Caliburn Micro

Есть ли блоги или статьи об использовании AvalonDock с Caliburn Micro MVVM? Когда гуглил, многого не нашел

http://avalondock.codeplex.com/

edit: получил голосование, так почему бы не обновить окончательное решение. Полный код можно найти здесь

https://github.com/AndersMalmgren/FreePIE

Большая часть кода, связанного с авалоном, находится здесь.

https://github.com/AndersMalmgren/FreePIE/blob/master/FreePIE.GUI/Shells/MainShellView.xaml

Обновление после ответа Сэма

Очень, очень мало нужно сделать, чтобы включить Caliburn. Сначала реализуйте LayoutItemTemplateSelector

public class AutobinderTemplateSelector : DataTemplateSelector
{
    public DataTemplate Template { get; set; }

    public override DataTemplate SelectTemplate(object item, DependencyObject container)
    {
        return Template;
    }
}

И используйте его вместе с элементом управления содержимым и механизмом присоединения Caliburns View.Model, например

<xcad:DockingManager.LayoutItemTemplateSelector>
    <avalonDock1:AutobinderTemplateSelector>
        <avalonDock1:AutobinderTemplateSelector.Template>
            <DataTemplate>
                <ContentControl cal:View.Model="{Binding . }" IsTabStop="False" />
            </DataTemplate>
        </avalonDock1:AutobinderTemplateSelector.Template>
    </avalonDock1:AutobinderTemplateSelector>
</xcad:DockingManager.LayoutItemTemplateSelector>

person Anders    schedule 27.01.2013    source источник
comment
Я знаю, что сейчас это старше, но я вернулся на то же место в новом проекте. Я пытаюсь понять эту часть кодовой базы FreePIE, но когда я пытаюсь скопировать этот подход, я получаю сообщение Не удается найти представление для System.Windows.Controls.ContentPresenter вместо ожидаемого представления. Есть ли очевидная причина, по которой вы можете получить это вместо представления при использовании Caliburn?   -  person Sam Storie    schedule 05.04.2018
comment
Вот моя проблема - stackoverflow.com/a/32723365/571237. Спасибо за публикацию вашего возможного решения!   -  person Sam Storie    schedule 05.04.2018


Ответы (2)


http://caliburnmicro.codeplex.com/discussions/231809 и http://caliburnmicro.codeplex.com/discussions/430994 (решение)

Я полагаю, что это сообщение, которое я использовал, чтобы создать аналогичный менеджер документов для телерика RadDockingManager. Этот пост и этот код могут помочь.

person Derek Beattie    schedule 28.01.2013
comment
О, тогда это неправильно. Я обновил его, хотя вы, вероятно, видели его. - person Derek Beattie; 28.01.2013
comment
Спасибо, вы тоже можете оставить мой пост, у меня там есть решение - person Anders; 28.01.2013

Исследуя то же самое, я наткнулся на фреймворк Gemini, разработанный Тимом Джонсом:

Github – https://github.com/tgjones/gemini

Веб-сайт: http://documentup.com/tgjones/gemini

Это попытка интегрировать AvalonDock с Caliburn.Micro, чтобы обеспечить единую структуру для создания приложений, подобных IDE. Он все еще находится на ранней стадии, но он реализует некоторые интересные абстракции, основанные на общем дизайне Caliburn.

У него также есть несколько хороших демонстрационных приложений, которые показывают, как можно использовать фреймворк.

person Sam Storie    schedule 03.07.2013
comment
Юпп нашел то же самое, когда я делал это, но для моей цели структура была слишком большой. Я обновил свой вопрос, указав единственную часть, необходимую для работы с Caliburn. - person Anders; 03.07.2013