私はこれを理解できないようです。私はここにいくつかの同様の質問を見つけたが、私は私のアプローチの正しい方向性を理解できないか、何か完全に間違っている。シングルトンクラスへのバインディングObservable Collection Member
My Applicationには、プログラムのすべてのクラスからのログメッセージを保存するシングルトンクラスのLoggerがあります。
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();
}
}
今、私は私のメインウィンドウにリストボックスにログインをバインドしたいが、私は
<ListBox Name="lstboxLog" Grid.Row="2" Margin="10,0,10,10" ItemsSource="{Binding Source={x:Static tools:Logger.Log}}" Height="100" />
ツールをバインド権利を把握することはできませんが、私のXAMLでシングルトンクラスの名前空間です。私はこれが私が思うより簡単だと確信していますが、私はただ見落としています。
それはトリックでした、ありがとうございました! – metacircle