Interaction.Triggers терпят неудачу в представлении списка MVVM - PullRequest
0 голосов
/ 19 января 2012

XAML ниже работает правильно, когда я нажимаю (MouseDown) в любом месте на фоне списка. Проблема в том, что я не могу заставить его работать, когда я нажимаю на какой-либо один элемент в списке. Я попытался поместить код триггера в рамку, изображение или TextBlock, но безуспешно.

<ListBox Name="SelectL2List" ItemsSource="{Binding L2Items, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsSynchronizedWithCurrentItem="True">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="MouseDown">
            <si:CallDataMethod Method="HideSelectL2View" Target="{Binding}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel IsItemsHost="True" />
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBox.ItemTemplate>
        <DataTemplate DataType="{x:Type ViewModels:MediaItemViewModel}" >
            <Border BorderThickness="1,1,3,3" Margin="10" CornerRadius="3">
                <StackPanel Orientation="Horizontal" >
                    <Image Source="{Binding Image}"/>
                        <TextBlock Text="{Binding L2Title}" />
                    </StackPanel>
                </Border>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 19 января 2012

Вы также должны убедиться, что все проходит тестирование, вы можете установить Background Границы на Transparent, чтобы гарантировать, что

Также события мыши перехватываются ListBoxItems, используйте туннелирование версий, т.е. PreviewMouseDown.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...