我爲我的項目使用Caliburn Micro,並決定使用Fluent Ribbon作爲UI的一部分。我的ShellView非常簡單,它的佈局如下:將Ribbon控件與Caliburn Micro接口的好方法是什麼?
- 功能區控制4個選項卡。
- ActiveItem。
活動項目根據功能區的選定選項卡動態更改。
問:
什麼是用絲帶控件作爲我的當前活動視圖模型(ActiveItem)的第二圖的正確方法,同時保持模塊化和所有配備CM本身繼承的好東西?另外,在我的ViewModels中「共享」我的Ribbon控件需要什麼?
詳情:
我ShellViewModel的類型是「Conductor.Collection.OneActive」的,它改變了ActiveItem特定視圖模型我選擇的選項卡(在觸發事件)相關聯。
我的色帶在XAML定義是這樣的:
<ContentControl x:Name="RibbonBar" Micro:View.Model="{Binding ActiveItem}" Micro:View.Context="Ribbon" />
,因爲它表明,織帶控制綁定到,因爲它的上下文視圖當前活動項目。這實際上適用於一個視圖,因爲由於默認的CM約定,它在子命名空間中查找上下文視圖(例如,如果我的視圖路徑是Views.TasksTabView,它將查找Views上的Context視圖.TasksTab.Ribbon)。
問題是,當我更改ActiveItem時,由於命名空間不同,無法再定位上下文視圖,所以它只適用於一個Tab。
我也試着寫我自己的ViewLocator約定,但我沒有成功。
謝謝。