WPF Получить элементы из ListBox как тип ItemTemplate - PullRequest
0 голосов
/ 14 августа 2011

У меня есть Listbox следующим образом:

xmlns:local="clr-namespace:MyGui.Controls"
<ListBox Grid.Row="1" ItemsSource="{Binding MyData}" x:Name="MyDataContainer">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <local:DataDisplay />
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

Я хотел бы перечислить элементы списка в виде объектов типа: MyGui.Controls.DataDisplay, как указано в ItemTemplate.Например:

foreach (var row in MyDataContainer.Items)
    if (row != null)
    {
        var tmp = MyDataContainer.ItemContainerGenerator.ContainerFromItem(row);
        if (tmp is ListBoxItem)
        {
            return (tmp as ListBoxItem).PROPERTY_I_WANT as DataDisplay;
        }
     }

Возможно ли это?

1 Ответ

1 голос
/ 14 августа 2011

В некоторой степени это возможно, чаще всего виртуализация помешает попыткам сделать это для всех элементов.В этом случае это не рекомендуется, если есть что-нибудь , вам необходимо получить доступ к элементу управления в ItemTemplate или к контейнеру, вы должны связать его, либо в самом шаблоне, либо в ItemContainerStyle.

...