Невозможно отобразить данные в сетке данных WPF с экземпляром DataView в качестве источника элементов.

Я использую объект DataGrid из набора инструментов WPF. Я привязываю объект DataGrid к представлению экземпляра DataTable по умолчанию, как объявлено в следующем коде:

WeatherGrid.ItemsSource = weatherDataTable.DefaultView;

WeatherDataTable имеет три столбца. Первый столбец определен как содержащий строковый тип данных. Два других столбца определены как содержащие двойные типы данных. Когда приложение выходит из функции, которая вызывает привязку, как указано в объявлении, объект DataGrid отображает данные для первого столбца, но не для других столбцов. Когда я набираю следующее в непосредственном окне отладчика:

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

Я получаю число, но оно не соответствует тому, что отображается. Почему виден только первый столбец и как сделать так, чтобы все данные были видны? Я оставлю свое определение XAML для объекта DataGrid ниже:

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

person Jimmy W    schedule 24.05.2010    source источник


Ответы (2)


Оказывается, для второго и третьего столбцов я использовал неправильные имена столбцов. В конечном итоге я хотел, чтобы моя DataTable была динамической в ​​том смысле, что в ней могло быть переменное количество столбцов, и я хотел однозначно идентифицировать каждый столбец по дате. Итак, я добавил две строки, одну с именем и одну с числами, разделенными знаком «/». Кажется, это вызвало некоторые проблемы с привязкой к объекту DataGrid.

Чтобы решить эту проблему, я изменил строку, однозначно идентифицирующую дату, на номер дня в году и года. В результате я смог отобразить данные.

Интересно отметить, что при использовании косых черт в именах столбцов DataTable при привязке к GridViews в ASP.NET таких проблем не возникает.

person Jimmy W    schedule 24.05.2010
comment
У меня такая же проблема. Оказалось, что это десятичные знаки (то есть символ «.») в именах столбцов. - person Collin K; 19.08.2010

На самом деле имя привязки столбца чувствительно к регистру и должно точно соответствовать именам базовых столбцов представления данных.

person JJ_Coder4Hire    schedule 23.05.2013