我正在研究我发现的一些 WPF 示例。
我这里有一个继承自Application的类:
public partial class DataBindingLabApp : Application
{
private ObservableCollection<AuctionItem> auctionItems = new ObservableCollection<AuctionItem>();
public ObservableCollection<AuctionItem> AuctionItems
{
get { return this.auctionItems; }
set { this.auctionItems = value; }
}
}
如您所见,此类有一个名为 AuctionItems 的属性。 因为它继承自 Application,所以它还包含名为“Current”的属性,该属性提供对 Application 实例的访问(根据 MSDN)。
然后在我的代码中:
((DataBindingLabApp)Application.Current).AuctionItems.Add(item);
我不明白。
既然我们可以有很多继承自 Application 的类,那么我们怎么知道 Application.Current 实际上包含类“DataBindingLabApp”的对象?
谢谢!
最佳答案
因为 Visual Studio 默认在部分生成的自定义应用程序类型类(您的情况下为 DataBindingLabApp)中生成入口点(您可以通过在解决方案的根目录中搜索找到它)。
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public static void Main() {
DataBindingLabApp app = new DataBindingLabApp();
app.InitializeComponent();
app.Run();
}
在应用程序运行后,Application.Current 包含 DataBindingLabApp 的实例。
关于c# - Application.Current <- 它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18558882/