c# - 无法在将 DataView 实例作为项目源的 WPF 数据网格中显示数据

标签 c# wpf wpftoolkit binding wpfdatagrid

我正在使用 WPF 工具包中的 DataGrid 对象。我将 DataGrid 对象绑定(bind)到 DataTable 实例的默认 View ,如以下代码中声明的:

WeatherGrid.ItemsSource = weatherDataTable.DefaultView;

weatherDataTable 有三列。第一列定义为包含字符串数据类型。其他两列定义为包含 double 据类型。当应用程序退出调用声明中所表达的绑定(bind)的函数时,DataGrid 对象显示第一列的数据,但不显示其他列的数据。当我在调试器的立即窗口中键入以下内容时:

((DataRowView)WeatherGrid.Items[0]).Row[1]

我得到一个数字,但这与显示的内容不符。为什么只有第一列可见,如何才能使所有数据可见?我将在下面保留 DataGrid 对象的 XAML 定义:

<toolkit:DataGrid Margin="12.726,77.71,12,0" Name="WeatherGrid" Height="500" Grid.Row="1" VerticalAlignment="Top" CanUserAddRows="False" CanUserDeleteRows="False" IsReadOnly="True" />

最佳答案

事实证明,对于我的第二和第三列,我一直使用不正当的列名称。我最终希望我的 DataTable 是动态的,因为它可以具有可变数量的列,并且我希望按日期唯一标识每一列。因此,我附加了两个字符串,一个带有名称,另一个带有由“/”分隔的数字。这似乎导致了 DataGrid 对象的一些绑定(bind)问题。

为了解决这个问题,我把唯一标识日期的字符串改成了一年中的某一天的数字。结果,我能够显示数据。

值得注意的是,在 ASP.NET 中绑定(bind)到 GridView 时,在 DataTable 列名称中使用斜杠时不会出现此类问题。

关于c# - 无法在将 DataView 实例作为项目源的 WPF 数据网格中显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2897833/

相关文章:

c# - 如何在不使用 ASP.NET 服务器端控件的情况下从 C# ASP.NET 中的 HTML 文件类型读取输入流

c# - 自定义 Json.NET 转换器不应序列化属性

c# - 找不到文件 obj\Debug\100\android\assets\Xamarin.Auth.dll.mdb'

wpf - 如何在空或透明背景上点击检测?

c# - 使用 Kinect 为简单的静态手势创建手势定义

wpf - 根本原因 : Recursive call to Automation Peer API is not valid

.net - 需要更换第 3 方 WinForm 控件,壁橱 WPF 等效项是什么?

c# - 如何从XML读取值?

c# - WPF 中的 Aero 窗口 (C#)

wpf 工具包颜色选择器