【问题标题】:DataGridTextColumn not displaying any dataDataGridTextColumn 不显示任何数据
【发布时间】:2014-10-24 07:22:27
【问题描述】:

我一直在尝试创建一个数据网格,其中每一列都从我创建的集合中显示。但我似乎无法让任何数据出现在 DataGridTextColumn 中。所以假设下面的集合 _sym 已经填充了数据。

C#

 public partial class MainWindow : Window
        {
            ObservableCollection<decimal> _sym = new ObservableCollection<decimal>();            
            public ObservableCollection<decimal> Sym { get { return _sym; } }

            public MainWindow()
            {
                InitializeComponent();
                this.DataContext = this;
}

Xaml

<Grid >       
    <DataGrid>
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Sym}"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>

我的 XAML 中是否缺少某些内容?我需要使用另一个 DataGrid[InsertTypeHere]Column 吗?我是否没有正确指定绑定源、目标或路径?

谢谢

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    您将绑定设置在错误的位置。它应该设置为DataGridItemsSourceDataGridTextColumn 中的上下文应该始终是每个项目(在你的情况下它只是一个十进制数字)。代码应该是这样的:

     <DataGrid ItemsSource="{Binding Sym}" AutoGenerateColumns="false">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Something" Binding="{Binding}"/>
        </DataGrid.Columns>
    </DataGrid>
    

    【讨论】:

    • 谢谢。那么如果我想将 DataGrid 中的每一列绑定到不同的对象呢?这可能吗?
    • @user1181337 目前您的数据项只是一个decimal。所以没有任何要绑定的属性(您只有一个选项是将小数本身绑定到数据网格的 1 列)。所以这取决于你的数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    相关资源
    最近更新 更多