Как добавить UserControl в панель в окне WPF

Я думаю, что упускаю что-то, что должно быть здесь очевидным, но я ничего не понимаю в этом. .

Я создал очень примитивный UserControl, содержащий только TextBoxдля использования в качестве окна журнала:

<UserControl x:Class="My.LoggerControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             x:Name="LoggerView">
    <Grid x:Name="LayoutRoot">
        <TextBox x:Name="LogWindow" AcceptsReturn="True"/>
    </Grid>
</UserControl>

Я не ожидаю, что это будет лучший способ сделать это, но он должно хватить для прототипа.

Код программной части также прост:

public partial class LoggerControl : UserControl, ILogger
{
    public LoggerControl()
    {
        InitializeComponent();
    }

    private LogLevel level = LogLevel.Warning;

    #region ILogger

    public LogLevel Level
    {
        get { return level; }
        set { level = value; }
    }

    public void OnError(string s)
    {
        if (level >= LogLevel.Error)
            LogWindow.AppendText("ERROR:::" + s + "\n");
    }

    // ...
    #endregion
}

Я не могу понять, как добавить этот элемент управления в мой MainWindow.xaml.Упрощая, скажем, мое окно выглядит так:

<Window x:Class="My.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:My"
    Title="Test" Height="350" Width="525">
    <Grid>
        <local:LoggerControl x:Name="LogView" />
    </Grid>
</Window>

Даже с такой простой задачей Designer в Visual Studio 2010 не может загрузить главное окно. Выдается следующая ошибка:

Значение типа «LoggerControl» не может быть добавлено в словарь-коллекцию или словарь типа «UIElementCollection».

Это сообщение об ошибке имеет только одно несвязанное обращение в основных поисковых системах (плюс дубликаты), поэтому я не нашел никакой полезной помощи. Собственная документация Microsoft, кажется, подразумевает, что это должно работать.

Есть идеи, как это решить?

7
задан Dave Clemmer 24 February 2013 в 01:20
поделиться