c# WPF XAML - 使用抽象用户控件

c# WPF XAML - Working with abstract UserControls

您好,我实际上正在开发一个 WPF 库,它提供具有不同基本功能的 MainWindow。使用组件的集成器实际上创建了这个 Window,要使用它必须提供一个继承自“UcDatasourceBase”的 CostomUserControl。此控件将放置在主窗口的中间,但我 不知道 知道 CustomUserControl 的有效类型,只是它正在实现 UcDatasouceBase

这就是 UcDatasourceBase 的代码隐藏方式:

/// <summary>
/// Interaction logic for UcDatasourceBase.xaml
/// </summary>
public abstract partial class UcDatasourceBase : UserControl
{
    public IDatasource Datasource { get; private set; }

    public UcDatasourceBase(IDatasource datasource)
    {
        InitializeComponent();
    }
}

以及我如何在 XAML 中集成控件(这会导致编译器错误):

<Controls:UcDatasourceBase x:Name="_ucDatasourceBase" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="5,13,5,7" Grid.Row="2" />

在 Mainwindow 的构造函数中,我终于想按名称设置控件:

    public MainWindow(UcDatasourceBase ucDatasourceBase)
    {
        _UcDatasourceBase = ucDatasouceBase;
        InitializeComponent();
    }

那么如何在不出现错误的情况下将抽象控件添加到 xml?

之前查过的链接:

我在 Visual Studio 2012 Premium

中使用 .NET Framework 4.5

编辑:

"UcDatasourceBase" 类型是抽象类型,必须包含显式值。

在xaml中创建一个新的ContentControl,并设置它:

<ContentControl x:Name="DataControl" />

稍后在您的代码中:

DataControl.Content = ucDatasourceBase;