2010-06-18 2 views
4

목록 상자의 항목 배열에 항목이 선택되었는지 여부를 어떻게 알 수 있는지 알고 싶습니다. 목록 상자에서는 여러 항목을 선택할 수 있으므로 모든 항목을 반복하고 어떤 항목이 선택되었는지, 어떤 항목이 아닌지를 확인해야합니다.목록 상자 (WPF)에서 항목을 선택했는지 여부를 감지

많은 감사 (나는 알고있다 - 짧은 달콤한)

답변

4

SelectedItems 속성을보고 반복하여 어떤 항목이 선택되어 있는지 확인하십시오.

모든 항목을 살펴 보려면 두 개의 모음 (MyListBox.Items 및 MyListBox.SelectedItems)을 비교하고 일치하는 항목을 확인하십시오. 같은

뭔가 : 정말하지만

foreach(Item item in MyListBox.Items)   
    if(MyListBox.SelectedItems.Contains(item) 
     MyObject.Value = true; 
    else 
     MyObject.Value = false; 

잔인! 당신이 무엇을 찾고있는 것입니까? 이 아닌 모든 항목에 무언가를하고 싶다면을 선택하는 것이 목적이 있다고 생각하십니까?

랜돌 포는 정확합니다. 데이터 바인딩은 데이터가 어떻게 구성되고 입력되고 목록 상자가 얼마나 큰지에 따라 달라질 수 있습니다.

+0

기본 객체에 soemthing하고 싶습니다. - 선택된 객체가 선택되면 true를 값으로 설정합니다 - 선택이 해제되면 다시 false로 설정하십시오. – Vidar

+1

@Vidar : 일반적으로 데이터 바인딩을 살펴보고 [Model View View-Model] (http://msdn.microsoft.com/en-us/magazine/dd419663.aspx) 패턴을 조사해야합니다. – Randolpho

+0

위와 같이 내 솔루션은 원하는대로 작동합니다. if 문에 else를 추가 한 다음 거기에있는 객체에 원하는 것을 수행하십시오. 내 대답을 편집 할게. – Spud1

1

ListBoxSelectedItems 속성이 있습니다. 해당 컬렉션에는 선택한 항목에 대한 참조가 있습니다.

+0

예 선택한 항목을 모두 가져 오지만 모든 항목을 살펴보고 선택한 항목인지 확인하고 싶습니다. 선택한 항목을 순전히보고 싶지는 않습니다. – Vidar

+0

@Vidar : 왜 안 되니? 선택한 항목에만 관심이 있다면 해당 컬렉션이 미리 필터링되어 있습니다. 전체 콜렉션을 반복하고 선택되어있는 것들을 찾으려면'SelectedItems'에'.Contains' 콜을 써서 할 수 있습니다. 그러나 접근 방법이 꺼져있는 것처럼 들립니다. 아마 당신은 그것을 더 잘 설명 할 수 있고 올바른 방향으로 인도 할 수 있습니다. – Randolpho

+0

내 접근 방식이 꺼져있을 수도 있습니다 = 아직이 코드를 조금 훑어보고있는 것 같아서요 ... – Vidar

1

WPF에서 작업하지 않았습니다. & 이것은 순수하게 MSDN을 기반으로합니다.
SelectedItems 소유지를보세요.

관련 문제