Связывание между родительскими и дочерними таблицами в WPF с использованием LINQ - PullRequest
0 голосов
/ 03 ноября 2011

У меня есть два элемента управления gridview, например родительский gridview, например, Order table и дочерний gridview Order_Detail Table.Оба связаны друг с другом.Если из таблицы «Заказ» выбран один заказ, соответствующие данные заказа отображаются в таблице «Order_Details». Вопрос в том, что я хочу вставить одну запись в таблицу «Order_Details» без потери привязки. Но когда я пытаюсь вставить запись, это неВоздействие. Источник данных не обновляется. Код приведен ниже.

Как мне это сделать?Пожалуйста, помогите мне ...

public partial class MainWindow : Window
{
    DataClasses1DataContext dc = new DataClasses1DataContext();
    IBindingList l;       
    IBindingList p;     

    public MainWindow()
    {
        InitializeComponent();
        l = dc.Orders.GetNewBindingList();           
        gridControl1.ItemsSource = l;           
    }

    private void Add_Click(object sender, RoutedEventArgs e)
    {
        var source = gridControl2.ItemsSource;            
        System.Data.Linq.EntitySet<Order_Detail> b = 
            (System.Data.Linq.EntitySet<Order_Detail>)source;            

        b.Add(new Order_Detail { OrderID=1,ProductID=1});
        gridControl2.ItemsSource = b;
        gridControl2.RefreshData();//getting error

       // dc.SubmitChanges();      
    }
}

1 Ответ

0 голосов
/ 06 ноября 2011

В WPF принято объявлять свойства, содержащие ваши данные, в вашем случае - ваши коллекции.Затем вы должны связать ItemsSource свойство ListView со своей собственностью и объявить свой GridView внутри свойства ListView.View.Вот пример, основанный на примере из этой страницы MSDN .

<ListView ItemsSource="{Binding Orders}">
  <ListView.View>
    <GridView>
      <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" />
      <GridViewColumn Header="Details" DisplayMemberBinding="{Binding Details}" />
      <GridViewColumn Header="Price" DisplayMemberBinding="{Binding Price}"/>
    </GridView>
  </ListView.View>
</ListView>

Используя эту настройку, вы можете добавлять новые объекты заказов в свойство коллекции Orders и при условии, что вы использовали ObservableCollection<T> коллекций, GridView будет автоматически обновляться в пользовательском интерфейсе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...