WPF中的交互式网格[-cells]

时间:2016-10-05 10:26:24

标签: c# wpf user-interface user-controls grid

我必须创建一个符合以下要求的控件:

  • 项目显示在" 表格的单元格 "
  • 项目可选择
  • 项目拖放n droppable

我有两种方法:

  1. ItemsControl使用Grid作为ItemsPanelTemplate DataGrid 大问题:ItemsControl不支持开箱即用的选择
  2. 使用ItemsControl(对我而言似乎模糊不清,因为它"不是为此而设计的#34;)
  3. 这是我所说的<ItemsControl Grid.Column="1" Grid.Row="2" Margin="5,5,5,0" BorderThickness="1" BorderBrush="Gray" Name="ItemsRack"> <ItemsControl.ItemContainerStyle> <Style> <Setter Property="Grid.Row" Value="{Binding RowPos}" /> <Setter Property="Grid.Column" Value="{Binding ColPos}" /> </Style> </ItemsControl.ItemContainerStyle> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <Grid ShowGridLines="False"> <Grid.RowDefinitions> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition /> </Grid.ColumnDefinitions> </Grid> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> </ItemsControl>

    {{1}}

1 个答案:

答案 0 :(得分:0)

  1. 项目显示在&#34;表格&#34;

    的单元格中

    您有几个选择:

    • 使用DataGrid:它确实有&#34; cell&#34;并提供一些编辑功能。如果你能很好地了解它,你可以做更复杂的事情。
    • 创建自己的?这可以确保您掌控一切并了解一切如何运作。如果这是一个大项目,我会选择这个选项。研究DataGrid并模拟它。如果您遇到障碍,请查看第三方解决方案并尝试向他们学习。
    • 去第三方:Xceed有一个免费的DataGrid,它提供的功能比标准的.NET更多。细胞肯定存在,而且这些特征看似已足够。

      http://wpftoolkit.codeplex.com/

  2. 项目可选择

    • ListBox / ListView是一个合理的选择,但可能不是您正在寻找的。
    • ItemsControl的功能有限,不支持项目选择。
    • DataGrid:你最好的选择。请参阅第一反应。
  3. 项目可拖动

  4. 请记住,如果您决定推出自己的DataGrid,那么这不是一项简单的任务。有趣但很难。