私はちょうどCaliburn Microを見始めました。しかし、MVVMパターンでDevExpressナビゲーションバーを使用する方法についていくつかの研究を行いました。私は開発チームに例を尋ねました。彼らは、コントロールできないバグがあると言っていました。彼らは仕事の例を挙げました。リンクはこちらです: http://www.devexpress.com/Support/Center/p/Q347737.aspx
私はその解決法を見ましたが、使用するには複雑すぎました。うまくいけば、このパッチはすぐに利用可能になりそうです。
キース
UPDATE 私は、リンクが機能しなかったことを実現していませんでした。
コントロールは、ナビゲーションバーのために作成されたユーザー:2つのターゲットタイプは2つのクラスが呼ばれ
<UserControl x:Class="NavBarMVVM.View.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dxn="http://schemas.devexpress.com/winfx/2008/xaml/navbar"
xmlns:ext="clr-namespace:NavBarExtensions;assembly=NavBarExtensions"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity">
<Grid>
<dxn:NavBarControl x:Name="navBar">
<dxn:NavBarControl.View>
<dxn:NavigationPaneView/>
</dxn:NavBarControl.View>
<i:Interaction.Behaviors>
<ext:NavBarMVVMAttachedBehavior ItemsSource="{Binding}">
<ext:NavBarMVVMAttachedBehavior.GroupStyle>
<Style TargetType="ext:NavBarGroupWrapper">
<Setter Property="Header" Value="{Binding Caption}"/>
<Setter Property="ItemsSource" Value="{Binding ItemsViewModel}"/>
</Style>
</ext:NavBarMVVMAttachedBehavior.GroupStyle>
<ext:NavBarMVVMAttachedBehavior.ItemStyle>
<Style TargetType="ext:NavBarItemWrapper">
<Setter Property="Content" Value="{Binding Name}"/>
<Setter Property="ImageSource" Value="{Binding PhotoImageSource}"/>
<Setter Property="Command" Value="{Binding ClickItemCommand}"/>
</Style>
</ext:NavBarMVVMAttachedBehavior.ItemStyle>
</ext:NavBarMVVMAttachedBehavior>
</i:Interaction.Behaviors>
</dxn:NavBarControl>
</Grid>
*ここでソリューションのより詳細な説明がありますラッパー。バインディングは次のように行います。 BindingOperations.SetBinding(NavBarGroup、NavBarGroup.ContentProperty、new Binding( "Content"){Source = this});
この参照はNavBarGroupというクラスに注目してください。 4つのヘルパーグループがあります。 NavBarGroup、NavBarItems、NavBarGroups(NavBarGroupのリスト)、およびNavBarItems(NavBarItemのLI) これらのクラスは、データを静的メンバーとして保持する別の4つの等価クラスによって作成されます。それは私のための契約の遮断者だったこれらの最後のクラスです。それは過度に複雑に線を越えるように見える。 希望に役立ちます。 Keith
あなたのVMとあなたのビューの関係がわかりません。 vmのプロパティは 'Plugins'ではなく 'PluginPresenter'になっていますか? また、一般的に、VM内に制御固有のコードを持つのは悪いパターンだと考えています。私はNavBarControlに慣れていませんが、最終結果は何ですか? –
私はプラグインベースのシステム(ディレクトリ内のDLL)が必要です。 DLLの名前は、ユーザーが選択するためのリストに表示され、名前はDLL(プラグイン)をロードするために使用され、ビュー上でユーザーに表示されるフォーム –