我在一個班上課。在視圖模型中,我有系統狀態屬性,在另一個類中,我正在手動撰寫電腦名稱……對于 150 臺電腦,我為狀態電腦創建屬性。清楚地說明這一點的最佳方法是什么?
public class Computers
{
public Computers()
{
computer1 = new SeriesViewModel();
computer2 = new SeriesViewModel();
computer3 = new SeriesViewModel();
//over 150 computer
}
SeriesViewModel computer1 { get; set; }
SeriesViewModel computer2 { get; set; }
SeriesViewModel computer3 { get; set; }
//over 150 computer
}
public class ComputerInfos: INotifyPropertyChanged
{
public ComputerInfos()
{
}
private string compname;
private string serialno;
public string ComputerName
{
get { return compname; }
set
{
compname= value;
OnPropertyChange(this,ComputerName );
}
}
public string SerialNumber
{
get { return serialno; }
set
{
serialno= value;
OnPropertyChange(this,SerialNumber);
}
}
}
在主視窗中,我像下面這樣在計算機上書寫,但這需要太多的精力和時間。我怎樣才能讓它更容易?
public partial class MainWindow : Window
{
private Computers computer;
public MainWindow()
{
InitializeComponent();
computer = new Computers ();
DataContext = computer;
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
computer.computer1.ComputerName = "Computer 1";
computer.computer1.SerialNumber = "1N-C1";
computer.computer2.ComputerName = "Computer 2";
computer.computer2.SerialNumber = "1N-C2";
computer.computer3.ComputerName = "Computer 3";
computer.computer3.SerialNumber = "1N-C3";
// for each computers writing like this is bad
}
}
uj5u.com熱心網友回復:
在這種情況下,我們使用ObservableCollection<T>類
你可以從這里檢查
你可以ObservableCollection這樣使用;
public class Computers
{
public Computers()
{
ComputerInfo = new ObservableCollection<ComputerInfos>();
for(int i = 0; i<150; i )
{
ComputerInfo.Add(new ComputerInfos());
}
}
public ObservableCollection<ComputerInfos> ComputerInfo { get; }
}
對于 150 臺計算機,您可以使用For Loop到每個ComputerInfos類來ComputerInfo收集。然后,您在主視窗中獲取或設定每臺計算機的資訊變得更加容易。
public partial class MainWindow : Window
{
private Computers computer;
public MainWindow()
{
InitializeComponent();
computer = new Computers ();
DataContext = computer;
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
for (int i = 1; i <=150; i )
{
computer.ComputerInfo[i-1].ComputerName = "Computer " i.Tostring();
computer.ComputerInfo[i-1].SerialNumber = "1N-C" i.ToString();
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/481274.html
上一篇:按鈕的WPF控制元件樣式未檢測到IsMouseOver
下一篇:WPF呼叫異步方法的結果導致阻塞
