首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >避免在datagrid中创建空行

避免在datagrid中创建空行
EN

Stack Overflow用户
提问于 2016-07-25 14:19:03
回答 1查看 499关注 0票数 0

我有两个类Cricket,足球和可观察的对象类型集合列表。基于一定的条件,我想把板球/足球类型的对象添加到可观察的集合中。我不分配任何数据,即只创建和实例类Cricket/足球,并将该实例添加到可观察的集合和绑定到UI。我的期望是,由于我没有为Cricket/足球的实例分配任何数据,所以只需要在datagrid中创建标题。但是,在创建该类实例时,我发现了一行,其中包含在相应类下定义的变量的默认值以及行标题。如何避免在不影响数据标题的情况下创建空行。

代码语言:javascript
运行
复制
<DataGrid SelectionMode="Single" VerticalAlignment="Stretch" ItemsSource="{Binding itemSource, UpdateSourceTrigger=PropertyChanged}"  CanUserReorderColumns="False" CanUserAddRows="False" IsReadOnly="True" CanUserDeleteRows="False" CanUserResizeColumns="False" HorizontalGridLinesBrush="Black" VerticalGridLinesBrush="Black" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Disabled" />

编辑

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-26 03:09:05

我认为您的数据集的CanUserAddRows属性设置为true。只要把它设为假就可以解决你的问题了。

代码语言:javascript
运行
复制
CanUserAddRows="false"
IsReadOnly="True"

编辑:抱歉。我现在把你的问题看清楚了。这是因为观察者集合的类型是object。我将向您展示一个小示例,以便您了解绑定是如何在数据集中工作的。您的集合应该具有公共属性,因此datagrid可以将列绑定到它。如果使用集合类型的Object,则没有用于绑定的属性,因此将显示空行。

XAML :.

代码语言:javascript
运行
复制
<DataGrid AutoGenerateColumns="False" Height="253" HorizontalAlignment="Left" Margin="27,24,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="448">
            <DataGrid.Columns>
                <DataGridTextColumn Header="First" Binding="{Binding Path=Field, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
            </DataGrid.Columns>
 </DataGrid>

代码背后:

代码语言:javascript
运行
复制
public partial class MainWindow : Window 
{ 
    public ObservableCollection dataSource;
    public MainWindow()
    {
        InitializeComponent();

        this.dataSource = new ObservableCollection<SomeDataSource>();

        this.dataSource.Add(new SomeDataSource { Field = "123" });
        this.dataSource.Add(new SomeDataSource { Field = "1234" });
        this.dataSource.Add(new SomeDataSource { Field = "12345" });

        this.dataGrid1.ItemsSource = this.dataSource;
    }
}

public class SomeDataSource
{
    public string Field {get;set;}
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38570255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档