我想在使用Caliburn.Micro的WPF應用程序中使用來自Fluent功能區控件的DropDownButton。WPF功能區:DropDownButton + Caliburn.Micro事件
到目前爲止,一切都很好。我在DropDownButton中看到我的Unicorns列表爲GalleryItems。 唯一的問題是我無法得到「ShowUnicorn()」的工作。 當我點擊DropDownButton列表中的一個項目時,它什麼都不做。 我做錯了什麼?
這是我使用的代碼:
<Fluent:DropDownButton Header="Farm"
LargeIcon="..\..\Resources\unicorn48.png">
<Fluent:Gallery ItemsSource="{Binding AllUnicorns}">
<Fluent:Gallery.ItemTemplate>
<DataTemplate>
<Fluent:GalleryItem Content="{Binding UnicornFoobar}"
cal:Message.Attach="[Event Click] = [Action ShowUnicorn()]" />
</DataTemplate>
</Fluent:Gallery.ItemTemplate>
</Fluent:Gallery>
在此先感謝。
我認爲這是舊的DataTemplate問題 - 對於這個漂浮在SO上的問題有幾個答案,但通常需要將'cal:Action.TargetWithoutContext'綁定到ViewModel。基本上發生的情況是,每行的'DataContext'就是實際的數據項本身(不是虛擬機),當你點擊時,CM正試圖解決數據項的方法。您需要告訴CM您希望使用操作而不是虛擬機中的數據行來定位虛擬機。 – Charleh