Я использую C# и XAML для создания диалогового окна, которое отображает информацию из базы данных. Окно, более или менее, функционирует так, как должно. Когда он инициализирован, данные базы данных заполняют DataGrid
соответствующим образом.DataGrids и привязки данных
Как вы можете видеть, есть также ComboBox
, который предназначен для фильтрации содержимого DataGrid
. Это как-то так. Когда я выбираю нужный элемент из ComboBox
, он фильтрует мою базу данных и создаетвыбранных типов объектов со всеми их данными. Проблема, с которой я сталкиваюсь, заключается в том, что невозможно определить способ заполнения временной таблицы данными из List<>
для заполнения DataGrid
. Что конец происходит до это:
Есть правильное количество строк для элементов в базе данных, и когда я запускаю его с перерывом, и все верные сведения в List<>
; но данные не отображаются в строках.
Я не могу создать новую таблицу в базе данных для результатов, потому что тогда привязки данных для DataGrid не будут работать; Я попытался заполнить таблицу информацией из List<>
с помощью вспомогательных классов ... Не могу понять это.
Любые идеи и/или помощь будут звездными.
Вот примерно столько кода, как я могу отправить: XML Data Bindings (Привязка Путь согласно столбцов в базе данных):
<DataGridTextColumn Header="Size" Binding="{Binding Path=ItemSize }"/>
<DataGridTextColumn Header="Elbow" Binding="{Binding Path=Ell}"/>
<DataGridTextColumn Header="Tee" Binding="{Binding Path=Tee}"/>
<DataGridTextColumn Header="Long-Turn Elbow" Binding="{Binding Path=LngEl}"/>
<DataGridTextColumn Header="Check Valve" Binding="{Binding Path=Chk}"/>
<DataGridTextColumn Header="Butterfly Valve" Binding="{Binding Path=Bfy}"/>
<DataGridTextColumn Header="Gate Valve" Binding="{Binding Path=Gate}"/>
<DataGridTextColumn Header="Alarm Valve" Binding="{Binding Path=Alm}"/>
<DataGridTextColumn Header="Dry Pipe Valve" Binding="{Binding Path=DPV}"/>
<DataGridTextColumn Header="45⁰ Elbow" Binding="{Binding Path=45Ell}"/>
<DataGridTextColumn Header="Tee Run" Binding="{Binding Path=Teerun}"/>
<DataGridTextColumn Header="Coupling" Binding="{Binding Path=Coup}"/>
<DataGridTextColumn Header="Swing Check" Binding="{Binding Path=Swg}"/>
C#:
var newTable = new CEqlTable();
var results = from myRow in vTable.AsEnumerable()
where myRow.SubCategoryID == GetPipeNumber()
select myRow;
foreach (DataRow dr in results)
{
var nextEntry = new CEqlTableRec(
false, (int)dr[0], (int)dr[1], (double)dr[2], (double)dr[3],
(double)dr[4], (double)dr[5], (double)dr[6], (double)dr[7],
(double)dr[8], (double)dr[9], (double)dr[10], (double)dr[11],
(double)dr[12], (double)dr[13], (double)dr[14], (double)dr[15],
Convert.ToByte(dr[18]));
newTable.Add(nextEntry);
}
dgPipeDetail.ItemsSource = newTable;
Пожалуйста, разместите полезную часть кода xaml и C#. Без кода трудно сказать, что случилось. –
Эй, Массимилиано, я обновил сообщение с таким количеством кода, сколько смогу. –
newTable - это результаты без фильтрации? Или newTable отфильтрованные результаты? – WBuck