這是我xaml
複選框[內部列表框的ItemTemplate]經過事件不被觸發
<ListBox x:Name="HistoryList"
ItemsSource="{Binding HistoryCollection}"
>
<ListBox.ItemTemplate >
</DataTemplate>
<CheckBox x:Name="UpCheckBox" Height="50" Width="50" >
<interactivity:Interaction.Triggers>
<interactivity:EventTrigger EventName="Checked">
<interactivity:InvokeCommandAction Command="{Binding UpCheckedCommad}" CommandParameter="{Binding ElementName=UpCheckBox}"></interactivity:InvokeCommandAction>
</interactivity:EventTrigger>
</interactivity:Interaction.Triggers>
</CheckBox>
</DataTemplate>
</ListBox.ItemTemplate >
</ListBox >
在ViewModel
我用GalasoftMVVM Command Binding
public ICommand UpCheckedCommad
{
get { return new RelayCommand<Object>(x => { PerformUpforTracks(x); }); }
}
void PerformUpforTracks(object x)
{
//TODO
}
我用了一個CheckBox
裏面ListBox ItemTemplate
。但我不在ViewModel
中獲得Checked
事件CheckBox
。
我想從ViewModel獲取Checked事件。
任何人都可以有任何想法來解決這個問題?
你能告訴我該命名空間是屬於 'X' 綁定
Command
? – asitis 2013-02-08 14:01:58您已經在代碼示例中使用了「x」命名空間。它是XAML模式的內置命名空間。 「AncestorType = {x:Type ListBox}」基本上只是說「向上移動樹直到我們找到一個ListBox,然後在它的DataContext裏面查看我的綁定」。 – BTownTKD 2013-02-08 14:03:35
感謝兄弟的幫助。我得到了答案。無論如何,我沒有從'x'獲得Type。我不知道它爲什麼。 – asitis 2013-02-08 14:07:09