Можно ли привязать изображение из одной формы к элементу управления в другой - PullRequest
0 голосов
/ 10 октября 2011

У меня есть две формы, одна из которых представляет собой форму типа «редактор», где у меня есть возможность выбрать несколько изображений с ПК пользователя и загрузить их в локальную базу данных, где они хранятся. Это работает нормально, я могу получить к ним доступ и увидеть, что они заполнены в моем списке.

Однако я также хочу иметь возможность показывать эти изображения в другой форме, чтобы сэкономить время - да, я должен использовать другую форму. Я довольно новичок в связывании данных, но я все еще понимаю его достаточно, чтобы реализовать его достаточно широко, я просто не могу понять, как связать данные из объекта изображения в форме 2, в список в форме 1. Конечная идея создать приложение типа слайд-шоу (только 1 часть приложения).

Ответы [ 2 ]

1 голос
/ 10 октября 2011

По форме я предполагаю Window, поэтому есть несколько способов сделать это ...

  1. MVVM - это будет иметь экземпляр модели представления, связанный с окном 1, который будет содержать URI выбранных изображений, и тот же экземпляр модели представления может быть связан с другим окном, и это покажет изображения на другом .

  2. Вы можете ссылаться на два элемента из двух форм, если одна из форм помечена как Owner другой.

например. если Window1 - это окно OwnerWindow Window2, вот так ...

 window2.Owner = window1;
 window2.Show();

При Window1, связать свойство Window.Tag со свойством элементов items выбранного ...

 <Window x:Class="...Window1"
         ...
         Tag="{Binding SelectedItems, ElementName=MyListBox, Mode=OneWay}">
     <ListBox x:Name="MyListBox" .... />
 </Window>

Тогда в Window2 вы можете использовать привязку данных к контексту данных для получения того же самого через это Owner.Tag свойство

 <Window x:Class="...Window2"
         ...>
     <ListBox x:Name="ThumbnailListBox"
              DataContext="{Binding Owner.Tag, 
                                    RelativeSource={RelativeSource
                                        AncestorType={x:Type Window}}"
              ItemsSource="{Binding}" />
 </Window>

Надеюсь, это поможет ...

1 голос
/ 10 октября 2011

Вы можете связать непосредственно из базы данных во второй форме. Поскольку у вас есть изображения, хранящиеся в локальной базе данных, вы можете легко получить их во второй форме.

...