2013-07-02 6 views
-2

다음과 같이 컬렉션을 목록 상자에로드하려고합니다 (목록 상자에 이미지와 텍스트 블록이 포함되어 있습니다). 이미지의 바깥쪽에있는 항목별로 각 항목을 클릭하면 (영역 2) 선택 변경 잘 작동 (정확하게 강조 표시); 하지만 원하는 경우 각 이미지를 클릭하여 선택을 변경하면 올바르게 작동합니다. 이유는 무엇입니까? 항목WPF listBox 컬렉션 선택 변경이 올바르게 작동하지 않습니다.

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

나는 당신이 심지어 당신의 문제가 무엇인지 ... 당신의 버튼 – Marc

+0

아래 할 이벤트를 클릭하여 원하는 것을 이해할 수 없었다 (ListBoxItem) yourList.ContainerFromElement ((Button) sender)); curItem.IsSelected = true; } – Aneef

답변

1

에 의해
enter image description here 항목은 질문 이후 :

이 뒤에 이유는 무엇인가?

목록 상자의 각 항목은 자동으로 선택 가능하므로 (UI의 일부로 하나 이상의 목록 항목을 선택할 수 있음) 이유가 있습니다. 그러나 목록 항목 템플리트에 단추를 포함 했으므로 단추를 클릭하면 시스템이 목록 항목 앞에있는 클릭 한 단추에 응답합니다.

어떻게 처리 할 것인지 지정하지 않았습니다. 개별 항목을 선택할 수 없도록하려는 경우 <ItemsControl>을 사용해야하며, 가운데에있는 아이콘을 클릭 할 수 없도록하려는 경우 <Button><Image> 또는 유사한 것으로 변경해야합니다. . 또는 두 번의 클릭 이벤트 (버튼 클릭 및 목록 항목 선택 클릭)를 원할 경우 이벤트 처리기를 사용하여 수동으로이 이벤트를 구현해야합니다. 개인 무효 ButtonBase_OnClick (개체를 보낸 사람, RoutedEventArgs e)에 { var에 curItem = (:

+0

수동 이벤트 구현을 위해 clik 이벤트와 선택 가이드 라인을 모두 사용해야합니다. – Gayan

+0

[라우트 된 이벤트] (http://msdn.microsoft.com/en-us/library/ms742806.aspx)를 조사하십시오. 처리하려는 각 항목에 대해 수동 이벤트 핸들러를 설정해야합니다. – qJake

+0

팁 주셔서 대단히 감사합니다. – Gayan