2011-04-23 5 views
0

다른 콘텐츠의 속성 (DataGrid의 데이터)을 기반으로 menuItem의 가시성을 전환 할 수있었습니다. 목록 상자 항목에서도 동일한 작업을 수행 할 수 있어야합니다. 나는 그렇게 힘든 시간을 보낸다. 나는 누군가가 그걸 도울 수 있는지 궁금합니다. 어떤 도움이라도 대단히 감사합니다!확인 방법 ListBoxItem의 콘텐츠 이름?

이 메뉴 아이템과 협력 방법 : XAML :

<SplitButton:MenuButton x:Name="test" Content="Test"> 
<SplitButton:MenuButton.ButtonMenuItemsSource> 
     <toolkit:MenuItem x:Name="item1" Header="Item1" /> 
     <toolkit:MenuItem x:Name="item1" Header="Item2" /> 
    </SplitButton:MenuButton.ButtonMenuItemsSource> 

내가 lisboxitem 목록 상자에 같은 VAR 설정에 문제가 있습니다. 그것은 MenuItems와 완벽하게 작동합니다.

목록 상자 XAML :

<toolkit:Expander x:Name="test" Header="Test"> 
<Border x:Name="Border"> 
    <ListBox x:Name="List"> 
     <ListBoxItem x:Name="item1" Content="Item1" /> 
     <ListBoxItem x:Name="item2" Content="Item2" /> 
    </ListBox> 

내가 사용할 수 없습니다 OfType

var item1Task = test.ButtonMenuItemsSource.OfType<ListBoxItem>().Where(temp => temp.Name == "item1").First(); 

가 나는 ListBoxItem의에서 작동하는 방식으로 설정 VAR의 coede 라인을 변환해야 목록 상자 내용 내. 나는 그와 같은 것을 시도했다 :

var item1Task = List.OfType<ListBoxItem>().Where(temp => temp.Content == "item1").First(); 

나는 희망한다. 이전 컨트롤과 잘 작동하지만 목록 상자를 사용하여 동일한 작업을 수행해야합니다. 도와 주셔서 미리 감사드립니다.

답변

2

"item1"이라는 ListBoxItem이나 "item1"이 Content로되어 있는지 확인해야합니까? 첫 번째 작업을 수행하려면이 쿼리를 시도 할 수 있습니다 : 당신이 콘텐츠를 검색해야하는 경우

var item1Task = List.Items.Cast<ListBoxItem>().First(temp => temp.Name == "item1"); 

는이를 사용

var item1Task = List.Items.Cast<ListBoxItem>().First(temp => temp.Content == "Item1"); 

당신은 문자열을 비교할 때 감도를 케이스에 더 많은 관심을 제공해야합니다. 또한 Where First First는 이미 conditional 버전이므로 함께 사용할 필요가 없습니다.

+0

고맙습니다. 그것은 훌륭하게 작동했습니다. – vladc77