Привязка к члену наблюдаемой коллекции класса Singleton

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

В моем приложении есть регистратор классов Singleton, который сохраняет сообщения журнала от каждого класса в моей программе.

public class Logger
{
    private Logger()
    {

    }

    private static volatile Logger instance;

    public static Logger GetInstance()
    {
        // DoubleLock
        if (instance == null)
        {
            lock (m_lock)
            {
                if (instance == null)
                {
                    instance = new Logger();
                }
            }
        }
        return instance;
    }

    //Helper for Thread Safety
    private static object m_lock = new object();

    private ObservableCollection<string> _Log;

    public ObservableCollection<string> Log
    {
        get { return _Log; }
    }

    public void Add(string text)
    {
        if (_Log == null)
            _Log = new ObservableCollection<string>();

        Log.Add(DateTime.Now.ToString() + " " + text);
    }

    public void Clear()
    {
        _Log.Clear();
    }

}

Теперь я хочу привязать Log к ListBox в моем MainWindow, но я не могу найти правильный инструмент Binding

<ListBox Name="lstboxLog" Grid.Row="2" Margin="10,0,10,10" ItemsSource="{Binding Source={x:Static tools:Logger.Log}}" Height="100" />

— это пространство имен одноэлементного класса в моем XAML. Я уверен, что это проще, чем я думаю, но я просто что-то упускаю из виду.

12
задан H.B. 20 April 2012 в 08:09
поделиться