Как связать таблицу в наборе данных с сеткой данных WPF в C # и XAML - PullRequest
7 голосов
/ 24 марта 2010

Я искал часы, чтобы найти что-то очень простое: связать таблицу данных WPF с таблицей данных, чтобы увидеть столбцы во время разработки. Я не могу заставить ни один из примеров работать на меня.

Ниже приведен код C # для заполнения информационной базы данных внутри информации о наборе данных:

info = new Info();
InfoTableAdapters.InfoWorkTableAdapter adapter = new InfoTableAdapters.InfoWorkTableAdapter();
adapter.Fill(info.InfoWork);

Проблема не в том, как я могу объявить, что «info» или «infoWork» Visual Studio / XAML не могут ее найти. Я пробовал:

<Window.Resources>
    <ObjectDataProvider x:Key="infoWork" ObjectType="{x:Type local:info}"  />
</Window.Resources>

Я также пробовал этот пример из wpf.codeplex, но XAML даже не нравится ключевое слово «local:»!

<Window.Resources>
   <local:info x:Key="infoWork"/>
</Window.Resources>

Здесь действительно два основных вопроса: 1) Как мне объявить таблицу InfoWork в C #, чтобы XAML мог ее видеть? Я попытался объявить его Public в классе окна, в котором XAML существует, но безуспешно. 2) Как мне объявить ресурс Windows в XAML, в частности, набор данных внутри набора данных?

Из любопытства, есть ли причина, по которой ItemsSource просто не отображается как свойство, которое устанавливается в окне разработки свойств?

1 Ответ

6 голосов
/ 08 мая 2010

Использование Microsoft DataGrid следующим образом работает для меня:

В XAML я включаю DataGrid:

    <WpfToolkit:DataGrid
        Grid.Row="4" Grid.Column="0"
        ItemsSource="{Binding Path=GridData, Mode=OneWay}" >
    </WpfToolkit:DataGrid>

В моей модели представления я предоставляю DataView:

  public DataView GridData
  {
     get
     {
        DataSet ds = new DataSet("MyDataSet");

        using (SqlConnection conn = new SqlConnection(ConnectionString))
        {
           SqlCommand cmd = conn.CreateCommand();
           cmd.CommandType = CommandType.Text;
           cmd.CommandText = "SELECT * FROM HumanResources.Employee";

           SqlDataAdapter da = new SqlDataAdapter(cmd);
           da.Fill(ds);
        }

        return ds.Tables[0].DefaultView;
     }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...