dataGrid中的行数

时间:2014-07-29 09:56:52

标签: c# wpf xaml datagrid

我已经实现了一个可编辑的dataGrid,用户可以在其中键入一些值。关键是,我只想要一行,但是当第一行用值填充时,dataGrid会不断添加一行,而#34; tab"键是按下的。我甚至设置了属性:

CanUserAddRows="False" 

但是,在dataGrid中没有显示任何行,我也无法输入任何值。

我的XAML代码:

<DataGrid x:Name="dataGrid2" HorizontalAlignment="Left" Margin="14,373,0,0" VerticalAlignment="Top" Width="214" Height="90" AutoGenerateColumns="False" ScrollViewer.CanContentScroll="False" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Disabled" CanUserAddRows="False" >
    <DataGrid.Columns>
        <DataGridTextColumn Header="Vare nr.:" Binding="{Binding Varenr}" />
        <DataGridTemplateColumn Header="Kolonnenavn" >
            <DataGridTemplateColumn.CellTemplate >
                <DataTemplate>
                    <ComboBox  Name="comboBoxUpdate" SelectedItem="{Binding Kolonnenavn}">
                        <ComboBoxItem Content="Navn" />
                        <ComboBoxItem Content="Varenr"/>
                        <ComboBoxItem Content="Enhed"/>
                        <ComboBoxItem Content="Stkpris"/>
                        <ComboBoxItem Content="Konto"/>
                        <ComboBoxItem Content="Dato"/>
                    </ComboBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
        <DataGridTextColumn Header="Nyt Værdi" Binding="{Binding Nytværdi, StringFormat='{}{0:0.####}'}" />
    </DataGrid.Columns>
</DataGrid> 

我将键入的值绑定到ObservableCollection。

XAML.CS:

public Window1()
{
    InitializeComponent();

    ObservableCollection<User> users = new ObservableCollection<User>();
    dataGrid2.ItemsSource = users;

}

public class User
{
    public string Varenr { get; set; }

    public ComboBoxItem Kolonnenavn { get; set; }

    public string Nytværdi { get; set; }
}

我该如何处理?

1 个答案:

答案 0 :(得分:0)

您可以禁用使用如下触发器添加多行的功能:

<DataGrid.Style>
    <Style TargetType="DataGrid">
        <Style.Triggers>
            <Trigger Property="HasItems" Value="True">
                <Setter Property="CanUserAddRows" Value="False"></Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
</DataGrid.Style>