我想創建一個像MDI選項卡式界面,所以我有一個左側的導航窗格(Listbox)和右側的ContentPresenter。將命令綁定到ListView中的按鈕與Caliburn.Micro
我有了一個BindableCollection它稱爲AvailAbleScreens,我成功地設法綁定到該列表與列表視圖的DataTemplate一個ShellViewModel:
<ListView x:Name="AvailableScreens">
<ListView.ItemTemplate>
<DataTemplate>
<WrapPanel>
<BulletDecorator />
<Button x:Name="DisplayView">
<TextBlock Text="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged}" />
</Button>
</WrapPanel>
</DataTemplate>
</ListView.ItemTemplate>
現在的問題是,雖然按鈕的名稱設置正確地說,我不能讓命令爲我着火。 在MdiViewModel類我該按鈕的下面的代碼:
public bool CanDisplayView()
{
return true;
}
public void DisplayView()
{
MessageBox.Show("Hello");
}
所有Caliburn.Micro樣品通過約定於x結合工作:名稱屬性,但如果我刪除文本=「{結合} 「它停止工作,所以我懷疑這種數據綁定方式不適用於子模型?
無論如何,殼牌的視圖模型是非常簡單的時刻:
ShellViewModel
* AvailableScreens
-MdiViewModel1
-MdiViewModel2
* CurrentActiveScreen
任何想法我如何與Caliburn.Micro做到這一點? Rob Eisenberg在推特上向我建議,在進入完整的Caliburn框架之前,我可能想先與Caliburn.Micro開始。