WPF listBox集合选择更改无法正常工作

时间:2013-07-02 13:03:23

标签: wpf listbox-control

我试图按如下方式将一个集合加载到列表框中。(列表框中的一个项目包含一个图像和一个文本块)如果我点击图像外部的每个项目(区域2)选择更改工作很好(突出正确);但如果通过点击每个图像进行选择更改,这需要正确工作。这背后的原因是什么? enter image description here逐项

 <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>

1 个答案:

答案 0 :(得分:1)

因为你问:

  

这背后的原因是什么?

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

您没有指定您希望这样做的方式。我猜你应该使用<ItemsControl>,如果你不想选择单个项目,或者将你的<Button>更改为<Image>或类似的话,如果你不知道的话我希望能够点击中心的图标。或者,如果您希望触发两个单击事件(单击按钮,单击列表项选择),则需要使用事件处理程序手动实现此操作。