【发布时间】:2014-02-22 08:49:29
【问题描述】:
我有一个 WPF 应用程序,其中有这个用户控件
查看
<Grid Background="{StaticResource ResourceKey=baground}" >
<DockPanel >
<UserControl x:Name="container" ></UserControl>
</DockPanel>
</Grid>
我需要添加一个在container 的内容发生变化时引发的事件:
private void container_LayoutUpdated_1(object sender, EventArgs e)
{
Thread windowThread2 = new Thread(delegate() { verifing2(); });
windowThread2.SetApartmentState(ApartmentState.STA);
windowThread2.IsBackground = true;
windowThread2.Start();
Thread windowThread3 = new Thread(delegate() { verifing3(); });
windowThread3.SetApartmentState(ApartmentState.STA);
windowThread3.IsBackground = true;
windowThread3.Start();
}
如您所见,我尝试了LayoutUpdated 事件,但我认为这不是最好的主意,因为它被多次提出,即使container 的内容没有改变。
- 我该如何解决这个问题?
谢谢,
【问题讨论】:
-
container的内容是直接改的吗?内容如何变化? -
如果你使用 ContentControl,已经有 ContentChanged 事件了。
-
UserControl有一个事件“DataContextChanged”。你试过了吗?
标签: c# .net wpf multithreading user-interface