我正在浏览一些我找到的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'类的对象?
谢谢!
答案 0 :(得分:3)
因为我们可以有很多可以继承自Application
的类
这不相关。重要的是Application类中只有一个实例。正在运行的唯一应用程序。一定要区分类型和对象。
答案 1 :(得分:3)
因为默认情况下Visual Studio在部分生成的自定义应用程序类型(在您的情况下为DataBindingLabApp)中生成入口点(您可以通过在解决方案的根目录中搜索来找到它)。
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public static void Main() {
DataBindingLabApp app = new DataBindingLabApp();
app.InitializeComponent();
app.Run();
}
在运行应用程序之后,Application.Current包含DataBindingLabApp的实例。