我可以在DataGrid上制作UpDown Column吗?

时间:2015-02-13 11:40:41

标签: c# wpf wpfdatagrid numericupdown

我可以在DataGrid上制作UpDown列吗?

我有简单的DataGrid:

 <DataGrid Grid.Row="0" Grid.Column="0">
                            <DataGrid.Columns>
                                <DataGridTextColumn Header="Name">  </DataGridTextColumn>

                            </DataGrid.Columns>
  </DataGrid>

我想制作UpDown专栏。我可以这样做吗?

谢谢!

P.S。我的意思是numericUpDown计数器。 :up:[1],down:[0]。

2 个答案:

答案 0 :(得分:1)

我认为你可以做点什么

<DataGrid>
   <DataGrid.Columns>
      <DataGridTemplateColumn>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Text="{Binding Path=AttrName}" Height="25" Width="150" HorizontalAlignment="Left" VerticalAlignment="Top" />
                                <TextBlock Text="{Binding Path=AttrDisplayLabel}" Height="25" Width="Auto" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="10,0,0,0" />
                            </StackPanel>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                    <DataGridTemplateColumn.CellEditingTemplate>
                        <DataTemplate>
                            <ComboBox Height="25" 
                                      ItemsSource="{Binding Source={StaticResource cvsAttributes}}"
                                      SelectedValuePath="AttributeID"
                                      IsSynchronizedWithCurrentItem="False"
                                      SelectionChanged="Selector_OnSelectionChanged"
                                      SelectedValue="{Binding Path=AttributeId, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">

                                <ComboBox.ItemTemplate>
                                    <DataTemplate>
                                        <StackPanel Orientation="Horizontal">
                                            <TextBlock Text="{Binding Name}"/>
                                        </StackPanel>
                                    </DataTemplate>
                                </ComboBox.ItemTemplate>

                                <ComboBox.ItemsPanel>
                                    <ItemsPanelTemplate>
                                        <VirtualizingStackPanel />
                                    </ItemsPanelTemplate>
                                </ComboBox.ItemsPanel>

                            </ComboBox>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellEditingTemplate>
                </DataGridTemplateColumn>
 ....

只需用你的updown / spinner控件替换组合。 celltemplate是你的显示器...... celledittemplate是你的编辑控件...(updown ...等......)

答案 1 :(得分:0)

如果您的意思是NumericUpDown列

您可以拥有模板列并将NumericUpDown Control添加到模板

查看Here创建自定义数字更新控件或只使用WPFToolkit提供的控件!!

查找工具包的代码Here