[wpf] Binding ownedwindows
От: Аноним  
Дата: 09.04.11 14:23
Оценка:
Нужно выводить список текущих дочерних окон

Как лучше сделать обертку над OwnedWindows, чтобы можно было написать как

< .. ItemsSource={Binding Path=OwnedWindowsMyProp, ElementName=mainwnd } />

Пока думаю создать свойство зависимостей ObservedCollection<Window> и добавлять/удалять элементы при изменении OwnedWindows,
но не нашел какое событие у объекта возникает при добавлении/удалении из коллекции OwnedWindows ?

Возможно есть другие варианты ?
Re: [wpf] Binding ownedwindows
От: Vladek Россия Github
Дата: 10.04.11 03:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Нужно выводить список текущих дочерних окон


А>Как лучше сделать обертку над OwnedWindows, чтобы можно было написать как


А>< .. ItemsSource={Binding Path=OwnedWindowsMyProp, ElementName=mainwnd } />


А>Пока думаю создать свойство зависимостей ObservedCollection<Window> и добавлять/удалять элементы при изменении OwnedWindows,

А>но не нашел какое событие у объекта возникает при добавлении/удалении из коллекции OwnedWindows ?

В чём необходимость этой обёртки?

А>Возможно есть другие варианты ?


А так разве не работает, без обёртки:

<ItemsControl ItemsSource="{Binding OwnedWindows, ElementName=mainwnd}">
 <ItemsControl.ItemTemplate>
  <DataTemplate DataType="Window">
   <TextBlock Text="{Binding Title}" />
  </DataTemplate>
 <ItemsControl.ItemTemplate>
</ItemsControl>
Re[2]: [wpf] Binding ownedwindows
От: Аноним  
Дата: 10.04.11 16:35
Оценка:
V>А так разве не работает, без обёртки:

V>
V><ItemsControl ItemsSource="{Binding OwnedWindows, ElementName=mainwnd}">
V> <ItemsControl.ItemTemplate>
V>  <DataTemplate DataType="Window">
V>   <TextBlock Text="{Binding Title}" />
V>  </DataTemplate>
V> <ItemsControl.ItemTemplate>
V></ItemsControl>
V>


Так работает только для окон на текущий момент, если появился новый Onwer или удалится существующий, то список не обновится т.к. не унаследован от ObservableCollection.
Обычно при старте приложения количеcтво OwnedWindows = 0.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.