c# - Application.Current <- 它是如何工作的?

标签 c# wpf

我正在研究我发现的一些 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/

相关文章:

c# - 在页面上多次引用单个图像文件是否会影响性能?

c# - 使用带有窗口窗体的 iTextSharp 创建 pdf

c# - Entity Framework 4.1 没有向 SQL Server Express 数据库添加任何行

c# - WPF路径碰撞检测?

c# - Backgroundworker 不会报告进度

wpf - 如何在 ItemsControl 上放置标题?

c# - 在代码隐藏中动态更改 XAML 样式,以便应用该样式的控件也反射(reflect)更改

c# - 在图片盒中绘制颜色?

c# - 如何匹配一个字符串,但前提是同一字符串尚未匹配或不匹配破折号?

wpf - 选项卡项和选项卡控件边框样式