1
我有一個表格,其中Property
名爲Car
這是一個有幾個屬性的類。C#窗體 - 屬性更改
根據一些用戶的行爲是財產將被設置爲當前車顯示。
所以我想知道何時該屬性被分配或設置爲空。
我知道了INotifyPropertyChanged
的,但在我的情況我不知道,如果因爲我不希望我的監視性能Car
改變,但Car
財產本身是適用的。
任何想法如何實現這一點?
在此先感謝
我有一個表格,其中Property
名爲Car
這是一個有幾個屬性的類。C#窗體 - 屬性更改
根據一些用戶的行爲是財產將被設置爲當前車顯示。
所以我想知道何時該屬性被分配或設置爲空。
我知道了INotifyPropertyChanged
的,但在我的情況我不知道,如果因爲我不希望我的監視性能Car
改變,但Car
財產本身是適用的。
任何想法如何實現這一點?
在此先感謝
如果你創建你的類真正的財產,那麼你應該有一個getter和setter。 您可以在表格setter方法直接添加代碼取決於其「車」採取行動的值設置爲:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// Define the Car class
public class Car
{
public string Name = string.Empty;
}
// private variable to hold the current Car value
private Car _car = null;
// Public form property that you can run code when either the get or set is called
public Car car
{
get
{
return _car;
}
set
{
_car = value;
if (_car == null)
MessageBox.Show(this, "Run code here when car is set to null", "Car is set to null");
else
MessageBox.Show(this, "Run code here: the cars name is: '" + _car.Name + "'", "Car is set to a value");
}
}
private void SomeFunction()
{
Car MyCar = new Car();
MyCar.Name = "HotRod";
// This will fire the car setter property
this.car = MyCar;
}
}
請添加相關代碼的形式和'car'類。你應該可以將'INotifyPropertyChanged'添加到表單中。 – Rhumborl 2014-10-17 11:01:59
這是正確的,它並沒有跨越我的腦海:)謝謝 – user2779312 2014-10-17 11:06:39
我認爲實施INotifiyPropertyChanged是一個好主意。但如果由於某種原因你不想這麼做(這比稍微有點麻煩),你可以堅持正常的Forms範例,實現一個普通的舊的「CarChanged」事件。然後,需要知道屬性值何時發生更改的代碼纔可以訂閱該特定事件(INotifyPropertyChanged更具通用性,這可能很好,但這也意味着訂戶會收到有關_all_屬性更改的通知,而不僅僅是他們關心的關於)。 – 2014-10-17 18:29:02