Написание WPF WinForms Control-оболочки - PullRequest
0 голосов
/ 31 мая 2011

Я использую библиотеку управления формами win, для которой у меня нет исходного кода.

Мое приложение - c # WPF / XAML и т. Д. Итак, я пишу оболочки для элементов управления WinForms. За исключением нескольких мелких неудобных вопросов, все идет довольно хорошо. До ...

У меня есть два элемента управления Winforms Forms

public class WFC_A
{
}

public class WFC_B
{
    public WFC_A WFC_A_Property { get; set; }
}

и два элемента управления WPF

public class WPF_A
{
     private WFC_A wfca;
}

public class WPF_B
{
     private WFC_B wfcb;
     public static readonly DependencyProperty WPF_A_Property =
            DependencyProperty.Register("WPF_A_Property", typeof(WPF_A),
            typeof(WPF_B), new FrameworkPropertyMetadata(new PropertyChangedCallback(OnWPFAPropertyChanged)));

}

...

Проблема в том, что при изменении свойства зависимости я хочу взять ссылку на WFC_A и сохранить ее как

wfcb.WFC_A_Property = WPF_A.wfca

1) Кажется, действительно хороший пример для класса друзей c ++, но это не доступно в c #. 2) Это довольно большие классы-обертки, и я действительно предпочитаю их не вкладывать. 3) Я мог бы сделать внутренние свойства wfc общедоступными, но я пытаюсь абстрагировать весь материал Winforms, чтобы потом его можно было заменить другой библиотекой.

Какие-нибудь предложения по правильному пути достижения того, что я пытаюсь сделать?

Спасибо.

1 Ответ

0 голосов
/ 31 мая 2011

Лучшее, что я могу придумать, это сделать свойство внутренним.Если ваши обертки находятся в библиотеке, используемой приложением, они не поймут, что вы это сделали.Если обертки находятся в той же сборке, что и ваше приложение, это может быть не так чисто.

...