我可以将图像从一个表单绑定到另一个表单上的控件

时间:2011-10-10 04:14:58

标签: c# wpf image data-binding

我有两种形式,一种是'编辑'类型形式,我可以从用户pc中选择多个图像并将它们上传到存储它们的本地数据库。这工作正常,我可以访问它们并看到它们填充在我的列表框中。

但是,为了节省时间,我还希望能够在另一种形式上显示这些图像 - 是的,我必须使用其他形式。我对数据绑定相当新,但我仍然理解它已经足够广泛地实现它,我只是无法弄清楚如何从表单2上的图像对象数据绑定到表单1上的列表框。最终的想法是创建幻灯片类型应用程序(仅应用程序的一部分)。

2 个答案:

答案 0 :(得分:1)

您可以直接从第二种形式的数据库绑定。由于您现在已将图像存储在本地数据库中,因此可以使用第二种形式轻松检索它们。

答案 1 :(得分:1)

按表格I假设Window,所以有多种方法可以做到这一点......

  1. MVVM - 这将有一个绑定到窗口1的视图模型实例,它将保存所选图像的URI,同一个视图模型实例可以绑定到另一个窗口,它将在另一个窗口显示图像

  2. 如果其中一个表单已被标记为另一个表单的Owner,那么可以引用两个表单中的两个元素。

  3. E.g。如果Window1Window2的OwnerWindow,那么......

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

    Window1上,将Window.Tag属性与元素的所选项属性绑定...

     <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>
    

    希望这会有所帮助......