Как проверить по имени содержимого ListBoxItem? - PullRequest
0 голосов
/ 23 апреля 2011

Мне удалось переключить видимость menuItem на основе свойства другого содержимого (данные в сетке данных). Мне нужно быть в состоянии достичь того же с элементами списка. Мне трудно это сделать. Мне интересно, может ли кто-нибудь помочь с этим: любая помощь высоко ценится!

Как это работает с menuItems: 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>

У меня проблема с установкой того же var для списка lisboxitem. Он отлично работает с MenuItems.

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

Мне нужно преобразовать эту строку коэффициентов установки var таким образом, чтобы она работала с ListBoxItem:

Список 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 = List.OfType<ListBoxItem>().Where(temp => temp.Content == "item1").First(); 

Я надеюсь, что это возможно. Он отлично работает с предыдущим элементом управления, но мне нужно сделать то же самое с использованием списка. Заранее благодарю за помощь.

1 Ответ

2 голосов
/ 23 апреля 2011

Вам нужно найти ListBoxItem с именем "item1" или который имеет "item1" в качестве содержимого? Чтобы сделать первый, вы можете попробовать этот запрос:

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 уже имеет условную версию.

...