好吧,所以情況是我爲ResourceDictionary(Styles.xaml)中的ListBox定義了一個ItemTemplate。該ListBoxItem的模板看起來是這樣的:如何在ResourceDictionary(Styles.xaml)中將Silverlight ListItem DataTemplate中的按鈕與處理程序連接起來?
<ControlTemplate TargetType="ListBoxItem">
<Button Command="{Binding Path=DoSomeCommand}" Content="Test" />
</ControlTemplate>
現在只要使用這個模板,我想有這個按鈕的點擊綁定到一個可用的視圖模型的命令來處理它。
然而,這並不因爲是工作,我也嘗試過這樣的:
<ControlTemplate TargetType="ListBoxItem">
<Button Command="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=DoSomeCommand}" Content="Test" />
</ControlTemplate>
,但仍然沒有骰子。
一個簡單的例子,做的工作是,如果你定義的控制(資源)的模板正在使用它,並且只使用一個事件處理程序(所有生成的XAML相同的處理程序。
任何意見或想法?在完成這一任務的最好方法我想這一定是一個常見的場景:我們的目標是隻允許用戶與在ListBox中的項目交互
感謝
感謝賈斯汀,但是我認爲在上面的代碼示例中非常清楚我使用的是Commands(實際上Commands現在內置於Silverlight框架中,不再需要使用Prism附加行爲)。 我認爲問題是每個ListItem的DataContext成爲數據綁定列表中的對象,而不是「頁面」ViewModel。這就是爲什麼我希望新的TemplatedParent RelativeSource可以提供幫助。 – Bobby 2010-01-23 09:19:33