Заполнить просмотр списка из данных SQL Server - PullRequest
0 голосов
/ 27 января 2019

У меня проблема с созданием списка просмотра. Я пробовал разные способы заполнения элементов ListView из SQL Server, и не могу ее решить.Я создал эту функцию для динамического заполнения списка, соединение работает до сих пор, так что это не проблема.Но в настоящее время моя проблема в том, что функция создает строки, но они остаются пустыми, пока список заголовков работает правильно.

Я пишу следующий код

XAML:

<ListView Name="LV" Height="494" Margin="10,30,10,10">
       <ListView.View>
             <GridView>
                  <GridViewColumn/>
             </GridView>
        </ListView.View>
 </ListView>

C #

            SqlDataAdapter sqladp = new SqlDataAdapter(query, strCon);
            DataSet ds = new DataSet();
            sqladp.Fill(ds, dValue);
            DataTable dt = ds.Tables[0];

            // Add columns
            var gridView = new GridView();
            LV.View = gridView;
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                gridView.Columns.Add(new GridViewColumn
        {
            Header = dt.Columns[i].ToString(),
            DisplayMemberBinding = new Binding($"[{i}]")
         });
            }

            if (dt.Rows.Count > 0)
                //Add Row
                foreach (DataRow row in dt.Rows)
                {
                    string[] arr = new string[dt.Columns.Count];
                    ListViewItem itm;
                    try
                    {
                        for (int i = 0; i < dt.Columns.Count; i++)
                            arr[i] = row[i].ToString();

                        LV.Items.Add(arr);

                    }
                    catch
                    {

                    }
                }
            LV.Visibility = Visibility.Visible;

1 Ответ

0 голосов
/ 27 января 2019

Вы назначаете rowItems на Content, но rowItems пусто и остается пустым.Возможно, вы хотели назначить Content на arr, который вы заполняете, но затем ничего с этим не делаете.

Кроме того, вам не нужно создавать ListViewItem самостоятельно.Они создаются для вас, когда вы добавляете элементы в свойство ListView.Items.Измените эту часть кода следующим образом (на основе вашего обновленного кода):

for (int i = 0; i < dt.Columns.Count; i++)
    arr[i] = row[i].ToString();

LV.Items.Add(arr);

Наконец, поскольку вы добавляете массив (а не объект со свойствами), вам нужно исправить столбецпривязка к следующему:

gridView.Columns.Add(new GridViewColumn
{
    Header = dt.Columns[i].ToString(),
    DisplayMemberBinding = new Binding($"[{i}]")
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...