Привет, я полностью согласен с Энди и Томасом. Они оба объяснили концепцию элегантно.
Я показываю только шаги, чтобы сделать то же самое только с набором данных .
MVVM (ModelView ViewModel) Я здесь не обсуждаю.
Xaml выглядит так
<Grid Name="myGrid" ShowGridLines="False">
<Label Height="28" Margin="12,5,0,0" Name="lblName" VerticalAlignment="Top" HorizontalAlignment="Left" Width="55">Name</Label>
<TextBox Height="23" Margin="73,8,85,0" Name="txtName" VerticalAlignment="Top" />
<Label Height="28" Margin="12,39,0,0" Name="lblPlace" VerticalAlignment="Top" HorizontalAlignment="Left" Width="55">Place</Label>
<TextBox Height="23" Margin="73,44,85,0" Name="txtPlace" VerticalAlignment="Top" />
<Button Height="23" HorizontalAlignment="Left" Margin="20,82,0,0" Name="btnAddRecord" VerticalAlignment="Top" Width="75" Click="btnAddRecord_Click">Add Record</Button>
<ListView Margin="31,119,27,45" Name="listView" *ItemsSource="{Binding}"*>
<ListView.View>
<GridView>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Header="Place" DisplayMemberBinding="{Binding Place}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
В файле .CS создайте набор данных
private DataSet MyDataSet()
{
DataTable dtInformation1 = new DataTable();
dtInformation1.Columns.Add("Name");
dtInformation1.Columns.Add("Place");
dtInformation1.Rows.Add(txtName.Text, txtPlace.Text);
DataTable dtInformation2 = new DataTable();
dtInformation2.Columns.Add("Name");
dtInformation2.Columns.Add("Place");
dtInformation2.Rows.Add(txtName.Text + "2", txtPlace.Text + "2");
DataSet Ds = new DataSet();
Ds.Tables.Add(dtInformation1);
Ds.Tables.Add(dtInformation2);
return Ds;
}
Далее в событии нажатия кнопки напишите следующее
private void btnAddRecord_Click (отправитель объекта, RoutedEventArgs e)
{
**listView.ItemsSource = MyDataSet().Tables[0].DefaultView;
- OR -
listView.ItemsSource = MyDataSet().Tables[1].DefaultView;**
}
N.B. ~ Вы не можете назначить источник набора данных ListView.
Почему? Вы можете спросить?
Простыми словами, набор данных представляет собой набор таблиц данных.
Предположим, у вас есть 5 различных таблиц данных. И скажите, что ни одно из имен столбцов, ни номеров столбцов не совпадают.
Теперь вы назначили все эти данные в свой набор данных. Как источник управления узнает, с каким источником он должен связываться?
Для преодоления такой ситуации либо создайте настраиваемую таблицу данных, в которой будут все столбцы этих дискретных таблиц данных, и присвойте значения этой настраиваемой таблице, а затем свяжите ее с источником.
Или вам нужно явно указать таблицу данных в источнике данных
Но я всегда предпочитаю использовать шаблон MVVM для такого рода операций.