我有这段代码:
public Model.Seznam<Model.Zprava> Seznam
{
get
{
return this.seznam;
}
set
{
this.seznam = value;
this.ZmenaVlastnosti("Seznam");//ChangeProperty
}
}
这是列表框
<ListBox HorizontalAlignment="Left" Height="328" Margin="10,10,0,0" VerticalAlignment="Top" Width="285" ItemsSource="{Binding Path=Seznam}" ItemTemplateSelector="{StaticResource VyberSablony}" />
问题是,我在主线程中使用Seznam(添加我发送的消息 - Seznam.Add(..)
),我需要添加来自其他线程的接收消息。
答案 0 :(得分:0)
使用调度程序:
Application.Current.Dispatcher.BeginInvoke((Action)( () => ZmenaVlastnosti("Seznam") ));
https://msdn.microsoft.com/en-us/library/cc190824(v=vs.110).aspx
答案 1 :(得分:0)
解决方案:
public static void UiInvoke(Action a)
{
Application.Current.Dispatcher.Invoke(a);
}
如何称呼它:
UiInvoke(() => { Seznam.Add(new Model.Zprava(DateTime.Now.ToString(), data, Model.Od.Server)); });