【发布时间】:2016-10-22 08:29:37
【问题描述】:
我正在画布中创建形状(矩形、椭圆、线条)。然后我在另一个窗口中有一个列表视图,我需要在其中输入形状的信息(例如位置,大小,它是什么形状)。
我在另一个窗口中的 XAML 中有这段代码:
<ListView Name="Information">
<ListView.View>
<GridView>
<GridViewColumn Header="Type"/>
<GridViewColumn Header="PositionX"/>
<GridViewColumn Header="PositionY"/>
<GridViewColumn Header="Width" DisplayMemberBinding="{Binding ActualWidth}"/>
<GridViewColumn Header="Height" DisplayMemberBinding="{Binding ActualHeight}"/>
</GridView>
</ListView.View>
</ListView>
在主窗口的 c# 中,我有一个可观察的集合和这段代码:
ObservableCollection<Shape> shapes = new ObservableCollection<Shape>();
myRect.Width = var1;
myRect.Height = var2;
Page.Children.Add(myRect);
Canvas.SetLeft(myRect, posx);
Canvas.SetTop(myRect, posy);
shapes.Add(myRect);
2ndwindow.Information.ItemsSource = shapes; // this is working because the 2ndwindow is owned by the mainwindow
编辑:我设法绑定宽度和高度,但我不知道如何绑定位置和形状(矩形或椭圆)
【问题讨论】:
-
请参阅this answer,了解如何在 MVVM 应用程序中使用 Rectangle 执行此操作。您可以通过声明不同的形状类型(类)并为它们使用不同的 DataTemplate 来概括它。