我正在使用WPF并创建了一个Window
,其中包含有关计算机的信息。
它存储信息,如网络连接,IP,子网掩码,网络设备和其他东西。
要跟踪系统中的更改,我想在对象上添加一个计时器来刷新自己。我不想刷新孔形式,因为我有HttpWebRequest
个,它会冻结程序几秒钟。它应该更容易看到变化并突出显示它们。
例如:
StComputerInf.Children.Add(new Label { Content = "2. Domain: \t\t" + System.Environment.UserDomainName });
我想在这里添加一个计时器来刷新自己。
对于TreeViewItem
中的每个TreeView
:
public TreeView CreatTVConnection()
{
List<CAdapter> LAdapter = new List<CAdapter>();
List<TreeViewItem> lConnectedDevices = new List<TreeViewItem>();
List<TreeViewItem> lDisconnectedDevices = new List<TreeViewItem>();
LAdapter = ReadAdapter();
TreeView tv_Adapter = new TreeView();
tv_Adapter.Name = "Adapter";
tv_Adapter.Background = System.Windows.Media.Brushes.Transparent;
tv_Adapter.BorderThickness = new Thickness(0);
TreeViewItem Connected = new TreeViewItem();
TreeViewItem Disconnected = new TreeViewItem();
lConnectedDevices = LoadTV(true, LAdapter);
if (lConnectedDevices.Count > 0)
{
Connected.Header = "Connected:";
Connected.FontWeight = FontWeights.Bold;
Connected.Foreground = System.Windows.Media.Brushes.Green;
Connected.Name = "Connected";
foreach (TreeViewItem tvi in lConnectedDevices)
{
tvi.FontWeight = FontWeights.Normal;
Connected.Items.Add(tvi);
}
}
....
有没有办法查看对象是否已更改?所以我可以突出显示受影响的对象?
答案 0 :(得分:0)
使用工厂创建对象。
因此,对于标签示例,您可以使用类似的内容
LabelFactory.Create(any useful parameters here)
并且作为该方法的一部分,您可以包含计时器等。
另外,请使用async / await来更新表单,以便更新它们而不冻结表单。一旦您对模式感到满意,您就应该能够消除对计时器的依赖。