これを行う最も簡単な方法は、いくつかの を追加しTextBlock
(または必要TextBox
に応じて)、それらをビュー モデルのプロパティにバインドすることです。
<TextBlock Text="{Binding Path=XCord}" />
トリックは、タイマーまたはバックグラウンド スレッドを使用しているため、UI スレッドで発生するようにプロパティ変更通知を同期する必要があることです。XCord
したがって、次のようなプロパティを実装できます。
public string XCoord
{
get { return _xcoord; }
set
{
if(!Application.Current.Dispatcher.CheckAccess())
{
Application.Current.Dispatcher
.BeginInvoke(new Action(() =>
{
_xcoord = value;
NotifyPropertyChanged("XCoord");
}));
}
else
{
_xcoord = value;
NotifyPropertyChanged("XCoord");
}
}
}
このチェックDispatcher
は、間違ったスレッドからプロパティを設定しようとしていないことを確認するために行われます。設定されている場合はBeginInvoke
、UI スレッドで作業を行うために使用されます。そうすれば、PropertyChanged
イベントが発生し、バインディングが値を読み取って UI を変更しようとすると、バックグラウンド スレッドではなく UI スレッドから実行されます。