-2

我正在尝试将集合加载到列表框,如下所示。(列表框中的一个项目包含一个图像和一个文本块)如果我逐项单击图像外部的每个项目(区域 2)选择更改工作正常(正确突出显示) ; 但是如果通过单击每个图像来改变选择,这需要正常工作。这背后的原因是什么?
在此处输入图像描述逐项

 <DataTemplate  x:Key="ObjectGalleryDataTemplate" DataType="{x:Type loc:ObjectTypes}" >
       <Button Margin="3" Width="80" Height="80" Click="click_object"BorderBrush="Transparent"  Tag="{Binding ObjectTypeID}">

<ItemsPanelTemplate x:Key="ObjectGalleryItemsPanelTemplate">

        <UniformGrid Rows="1"  HorizontalAlignment="Stretch"/>
        </ItemsPanelTemplate>

<StackPanel Orientation="Horizontal">
  <Grid><ListBox x:Name="ObjectTypesGallery" SelectionMode="Single" SelectionChanged="objectType_clik" BorderBrush="Transparent" SelectedIndex="0" ItemsSource="{Binding}" ItemTemplate="{DynamicResource ObjectGalleryDataTemplate}" ItemsPanel="{DynamicResource ObjectGalleryItemsPanelTemplate}">
      </ListBox>
   </Grid>
</StackPanel>
4

1 回答 1

1

既然你问:

这背后的原因是什么?

原因是列表框中的每个项目都会自动选择(以便您可以选择一个或多个列表项作为 UI 的一部分)。但是由于您在列表项模板中包含了一个按钮,因此当您单击该按钮时,系统会响应首先单击的按钮,位于列表项的前面。

您没有指定您希望它的行为方式。如果您不想选择单个项目,我猜您应该使用 an ,或者如果您不想能够单击中心的图标,请将您的<ItemsControl>更改<Button>为 an或类似的东西。<Image>或者,如果您希望同时触发两个单击事件(按钮单击和列表项选择单击),则需要使用事件处理程序手动实现这一点。

于 2013-07-02T13:16:56.703 回答