0
當使用具有ItemsSource的ItemsControl時,我在使用UserControl內的數據綁定時遇到了一些麻煩。我的Eventtrigger從未被調用過。MVVM嵌套數據綁定
我認爲問題是,當我把我的eventtrigger在該行:
<cmd:EventToCommand Command="{Binding ElementName=layoutroot, Path=DataContext.Checked}" />
它試圖找到的CheckBox收集檢查事件因爲我已經把我的ItemsSource,而應該看它父母。我一直在尋找解決方案的天,但他們都沒有工作。
我的代碼如下所示:
<Grid x:Name="layoutroot">
<ItemsControl x:Name="itemcontrol" ItemsSource="{Binding CheckBoxes}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"></StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<s:SurfaceCheckBox Background="White" Foreground="White">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<cmd:EventToCommand Command="{Binding ElementName=layoutroot, Path=DataContext.Checked}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</s:SurfaceCheckBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
當我嘗試下面的代碼它的工作原理完全如預期:
<Grid x:Name="layoutroot">
<s:SurfaceCheckBox Background="White" Foreground="White" Content="{Binding Content}" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<cmd:EventToCommand Command="{Binding ElementName=layoutroot, Path=DataContext.Checked}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</s:SurfaceCheckBox>
</Grid>
但我真的需要一個ItemsControl內部的這種行爲一組的ItemsSource。
任何想法?
感謝您的答覆。我發現我的複選框上還有另一層,這就是爲什麼我的事件沒有被觸發。 – Marc 2010-10-24 09:50:25