訪問不同的屬性值有ViewModelBase
與派生DerivedViewModel
我如何在派生類
ViewModelBase
具有DoSomething()
它訪問AProperty
DerivedViewModel也使用DoSomething()
,但它需要訪問不同的對象。
背後的原因是ViewModel在屏幕上以及在對話框中使用。當它在屏幕中時,它需要訪問特定的實體,但是當它在對話框中時,它需要訪問不同的實體。
這是簡化的代碼。如果你運行它,它們都返回A,而不是A,然後返回B.所以問題是,如何返回A,然後返回B?
class Program
{
static void Main(string[] args)
{
ViewModelBase bc = new ViewModelBase();
bc.DoSomething(); Prints A
DerivedViewModel dr = new DerivedViewModel();
dr.DoSomething(); Prints A, would like it to print B.
}
}
public class ViewModelBase {
private string _aProperty = "A";
public string AProperty {
get {
return _aProperty;
}
}
public void DoSomething() {
Console.WriteLine(AProperty);
}
}
public class DerivedViewModel : ViewModelBase {
private string _bProperty = "B";
public string AProperty {
get { return _bProperty; }
}
有一個錯字:第二個'bc.DoSomething();'應'dr.DoSomething( );' – BartoszKP
錯字固定,但它仍然返回A,答: –
是的,現在考慮Sriram Sakthivel的答案,它會很好:) – BartoszKP