WPF仪表板和小部件

时间:2011-08-24 15:37:10

标签: wpf dashboard

您好,我想写一些仪表板。您应该能够从某些来源拖动仪表板上的小部件。小部件的布局应该是免费的(首先是Canvas,后来是一些自己的Panel)。

我的问题:

  • 您对我有关此类控件的信息有任何提示吗?
  • 使用Selector作为BaseClass或者应该从Control
  • 继承是一个好主意

1 个答案:

答案 0 :(得分:2)

我会为所有小部件制作一个BaseClass,然后为每个小部件构建一个继承自ViewModel的{​​{1}},并使用BaseClass来构建View

之后,我会在主应用程序ViewModel中使用ObservableCollection<WidgetBaseViewModel> OpenWidgets,并将其绑定到ViewModel

ItemsControlItemsControl设置为ItemsPanelTemplate,每个Canvas将包含WidgetBaseViewModelTop,{{ 1}}和Left属性。

显示每个Widget的实际用户界面将基于Height,可能是您想要的任何内容,尽管Width最简单

DataTemplate

此外,您需要将UserControl / <ItemsControl ItemsSource="{Binding OpenWidgets}"> <ItemsControl.Resources> <DataTemplate DataType="{x:Type local:WidgetAViewModel}"> <local:WidgetAView /> </DataTemplate> <DataTemplate DataType="{x:Type local:WidgetBViewModel}"> <local:WidgetBView /> </DataTemplate> </ItemsControl.Resources> <ItemsControl.ItemTemplate> <DataTemplate> <Canvas ... /> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> 绑定在Canvas.Top而不是实际的Canvas.Left上,以使其在画布中正确显示。