Обновление элемента управления WindowsFormsHost из DP Callback WPF - PullRequest
0 голосов
/ 10 августа 2011

У меня есть оболочка usercontrol вокруг DataGridView в WindowsFormsHost.

Оболочка имеет DP с обратным вызовом, но обратный вызов является статическим, поэтому он не может просто выполнить код на размещенном элементе управления windowsforms, имеющем x: Name.

Как я могу обновить WindowsFormsHost DataGridView при обновлении DP?

Я хочу сделать что-то подобное, но я не могу ссылаться на _gridView в обратном вызове DP

 public LiteTable GridViewData
    {
        get { return (LiteTable)GetValue(GridViewDataProperty); }
        set { SetValue(GridViewDataProperty, value); }
    }

    private static void OnGridViewDataChanged(DependencyObject source, DependencyPropertyChangedEventArgs e)
    {
        _gridView.GetData((LiteTable)e.NewValue);
    }

    // Using a DependencyProperty as the backing store for GridViewData.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty GridViewDataProperty =
        DependencyProperty.Register("GridViewData", typeof(LiteTable), typeof(LiteGridViewWrapper), new UIPropertyMetadata(null, OnGridViewDataChanged));

1 Ответ

1 голос
/ 10 августа 2011

WPF передает экземпляр, свойство которого изменилось в параметре source.
Вы можете привести этот параметр к вашему типу и получить поле.

var me = (MyControl)source;
me._gridView.GetData((LiteTable)e.NewValue);
...