2012-06-18 4 views
0

Im работает с WPF с использованием MVVM, и мне нужно привязать таблицы DataSet к некоторым DataGrids, но он не работает. В моем DataSet есть 2 таблицы, называемые «table01» и «table02».Связывание DataGrid с DataTable DataSet

В моем XAML я написал следующее:

. . . 
<UserControl.DataContext> 
    <scr:MyViewModel/> 
</UserControl.DataContext> 
    <DataGrid Margin="0,0,0,0" Name="myGrid" ItemsSource="{Binding MyDataSet, Path=table01}" /> 
. . . 

Но никакие данные не показаны.

На мой взгляд, модель я написал следующее:

. . . 
private DataSet myDataSet; 
public DataSet MyDataSet 
    { 
     get 
     { 
      return myDataSet; 
     } 
     set 
     { 
      SetAndNotify(ref myDataSet, value,() => MyDataSet); 
     } 
    } 
. . . 

Просто чтобы прояснить, я заполняю свою DataSet в виде модели конструктора, даже я напечатал содержание моего DataSet и есть данные, и я проверили подключение к моему DataContext и работают нормально. Итак, что я делаю неправильно?

Надеюсь, кто-то может мне помочь. Заранее спасибо.

ответ

2

если у вас есть нетипизированный DataSet вы можете выставить свой стол, как свойство, как Кейт предложило или изменить связывание с

<DataGrid ItemsSource="{Binding MyDataSet.Tables[table01]}" /> 
0

Ваш общий объект DataSet не будет иметь на нем свойство, называемое «table01», к которому вы пытаетесь привязать.

Я предлагаю, возможно, разоблачить MyDataSet.Tables [0] как свою собственную собственность на вашем ViewModel?

public DataTable MyTable 
    { 
     get 
     { 
      return myDataSet.Tables[0]; 
     } 
    } 
Смежные вопросы