Как установить источник данных DataGrid в WPF?



Мне нужно установить таблицу из базы данных, чтобы быть источником данных GridGrid в WPF. В Windows Forms это свойство называется DataSource, но в WPF такого свойства не существует, так как же это сделать?

987   4  

4 ответов:

Вы можете использовать ItemsSource свойство:

<ListView ItemsSource="{Binding YourData}">
    <ListView.View>
        <GridView>
            <!-- The columns here -->
        </GridView>
    </ListView.View>
</ListView>

Если вы предпочитаете использовать code-behind, а не привязку, просто дайте имя ListView и задайте свойство ItemsSource в коде:

listView1.ItemsSource = YourData;

Можно также использовать свойство ItemsSource с другими элементами управления списком(DataGrid, ListBox, ComboBox, etc), так как он определен в базовом классе ItemsControl.


EDIT: если источником данных является DataTable, вы не можете назначить его непосредственно ItemsSource, потому что он не реализует IEnumerable, но вы можете сделать это через переплет:

listView1.SetBinding(ItemsControl.ItemsSourceProperty, new Binding { Source = YourData });

Это простой пример:

XAML часть :

<DataGrid Name="dataGrid1" Width="866" Height="auto" HorizontalAlignment="Left" VerticalAlignment="Top" />

Часть C# :

... [код для чтения и заполнения таблицы]...

da.Fill(myDataTable);
dataGrid1.ItemsSource = myDataTable.DefaultView;

И теперь ваша DataGrid будет заполнена вашим DataTable

GridView - это представление, а не автономный элемент управления, насколько я знаю, вы обычно используете его как представление ListView. В WPF свойство для заполнения данных называется ItemsSource, Вероятно, вы хотите использовать ListView или DataGrid для отображения данных таким образом.

Ниже вы можете использовать оба способа привязки datatable к datagrid в WPF.

 datagrid.ItemSource = mydt.DefaultView();

 datagrid.DataContext = mydt.DefaultView();

Comments

    Ничего не найдено.