gpt4 book ai didi

c# - 如何从另一个 in-behind xaml 代码访问变量 in-behind xaml 代码

转载 作者:行者123 更新时间:2023-11-30 18:42:28 25 4
gpt4 key购买 nike

我正在尝试制作一个 WPF 信使程序我的解决方案包含 app.xaml & app.xaml.cs , mainwindow.xaml & mainwindow.xaml.cs还有另外两个 xaml 页面,第一个用于连接,第二个用于 Messenger 核心 { contacts , status , .. etc }我有一个 agsxmpp 库可以帮助我连接定义和初始化连接的最佳 .cs 文件在哪里以及如何从另一个 .cs 文件访问它((及其事件处理程序))

顺便说一句,我总是面临这个问题:(

最佳答案

默认的 WPF 模板看起来像这样,带有 StartupUri 属性。

<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Window1.xaml">
<Application.Resources>

</Application.Resources>
</Application>

您需要删除 StartupUri 并改为使用 Startup 事件,以便您可以手动创建主窗口。

<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="Application_Startup">
<Application.Resources>

</Application.Resources>
</Application>


namespace WpfApplication1
{

public partial class App : Application
{
private XmppClientConnection _client = new XmppClientConnection ( );

private void Application_Startup(object sender, StartupEventArgs e)
{
var mainWindow = new Window1();
mainWindow.Show();
}
}
}

然后您可以向 Window1 类添加一个新的构造函数,以便将您需要引用的对象传递给它。

public partial class Window1 : Window
{
private XmppClientConnection _client;

public Window1()
{
InitializeComponent();
}

public Window1(XmppClientConnection client):this()
{
_client = client;
}
}

像这样:

private void Application_Startup(object sender, StartupEventArgs e)
{
_client = new XmppClientConnection();
var mainWindow = new Window1(client);
mainWindow.Show();
}

关于c# - 如何从另一个 in-behind xaml 代码访问变量 in-behind xaml 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5706098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com