当前位置: 首页 > news >正文

网页版qq在线登录界面wordpress如何优化页面

网页版qq在线登录界面,wordpress如何优化页面,万网商标,国际外贸网站推广一、基本方法:直接实例化并显示窗口 1. 普通窗口(无参数) 适用场景:简单的弹出窗口,无需传递数据。 private void Button_Click(object sender, RoutedEventArgs e) { var newWindow new MyWindow(); // 实例化…

一、基本方法:直接实例化并显示窗口

1. 普通窗口(无参数)
  • 适用场景:简单的弹出窗口,无需传递数据。

private void Button_Click(object sender, RoutedEventArgs e)
{
    var newWindow = new MyWindow(); // 实例化新窗口
    newWindow.Show(); // 非模态显示(用户可继续操作原窗口)
    // 或 newWindow.ShowDialog(); // 模态显示(阻塞原窗口,直到新窗口关闭)
}

  • 非模态窗口(Show():用户可同时操作原窗口和新窗口。
  • 模态窗口(ShowDialog():强制用户先关闭新窗口,才能操作原窗口。

二、传递数据到新窗口

1. 通过构造函数传递
  • 适用场景:新窗口需要初始化数据(如用户ID、标题等)。

// 新窗口的构造函数
public MyWindow(string title)
{
    InitializeComponent();
    this.Title = title; // 设置窗口标题
}
 
// 按钮点击事件
private void Button_Click(object sender, RoutedEventArgs e)
{
    var newWindow = new MyWindow("Custom Title");
    newWindow.Show();
}

 通过公共属性传递
  • 适用场景:需要在新窗口打开后动态更新数据。

// 新窗口的公共属性
public string Data { get; set; }
 
// 按钮点击事件
private void Button_Click(object sender, RoutedEventArgs e)
{
    var newWindow = new MyWindow();
    newWindow.Data = "Hello from Main Window"; // 设置数据
    newWindow.Show();
}

三、返回数据到原窗口

1. 模态窗口 + 返回值
  • 适用场景:新窗口需要返回用户输入(如对话框的确认/取消)。

// 新窗口(模态)
public partial class InputWindow : Window
{
    public string UserInput { get; private set; }
 
    private void Button_OK_Click(object sender, RoutedEventArgs e)
    {
        UserInput = txtInput.Text; // 获取用户输入
        this.DialogResult = true; // 设置对话框结果
        this.Close();
    }
}
 
// 原窗口调用
private void Button_Click(object sender, RoutedEventArgs e)
{
    var inputWindow = new InputWindow();
    if (inputWindow.ShowDialog() == true) // 检查DialogResult
    {
        MessageBox.Show($"You entered: {inputWindow.UserInput}");
    }
}

2. 事件回调(非模态窗口)
  • 适用场景:非模态窗口需要通知原窗口数据变化。

// 新窗口定义事件
public event Action<string> DataChanged;
 
private void Button_Send_Click(object sender, RoutedEventArgs e)
{
    DataChanged?.Invoke(txtInput.Text); // 触发事件
}
 
// 原窗口订阅事件
private void Button_Click(object sender, RoutedEventArgs e)
{
    var newWindow = new MyWindow();
    newWindow.DataChanged += (data) => 
    {
        MessageBox.Show($"Received: {data}");
    };
    newWindow.Show();
}

四、高级模式:MVVM与数据绑定

1. 使用ViewModel共享数据

// 共享的ViewModel
public class SharedViewModel : INotifyPropertyChanged
{
    private string _sharedData;
    public string SharedData
    {
        get => _sharedData;
        set { _sharedData = value; OnPropertyChanged(); }
    }
    // 实现INotifyPropertyChanged...
}
 
// 原窗口(设置ViewModel)
public partial class MainWindow : Window
{
    public SharedViewModel ViewModel { get; } = new SharedViewModel();
 
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        var newWindow = new MyWindow { DataContext = ViewModel }; // 共享ViewModel
        newWindow.Show();
    }
}
 
// 新窗口(绑定到ViewModel)
public partial class MyWindow : Window
{
    public MyWindow()
    {
        InitializeComponent();
        this.DataContextChanged += (s, e) => 
        {
            var vm = DataContext as SharedViewModel;
            if (vm != null) vm.SharedData = "New Data from Child Window";
        };
    }
}

对话框

 //注册对话框(卖出策略模块)
containerRegistry.RegisterDialog<SellView, SelViewModel>();

 public ObservableCollection<SellModel> Items
        {
            get;
            set;
        } = new ObservableCollection<SellModel>();

public MainWindowViewModel(IUnityContainer container, IRegionManager regionManager, IStrategyService strategyService, IDialogService dialogService)
        {
            _dialogService = dialogService;
        }

//按钮按下显示弹窗

private void Button_Click()
        {
            //传递参数
            var parameters = new DialogParameters
                {
                    { "DataList", Items }
                };

            _dialogService.ShowDialog("SellView", parameters, (IDialogResult result) =>
            {
                // 从结果中获取数据链表
                if (result.Parameters.TryGetValue<ObservableCollection<SellModel>>("DataList", out var dataList))
                {
                    Items = dataList;
                }
            });

        }

//弹窗

 class SellViewModel : BindableBase, IDialogAware
    {

 public SellStrategyViewModel(IContainerExtension container, IRegionManager regionManager)
        {
            _container = container;
            _regionManager = regionManager;
        }


        /// <summary>
        /// 允许关闭对话框
        /// </summary>
        /// <returns></returns>
        public bool CanCloseDialog()
        {
            return true;
        }

        /// <summary>
        /// 关闭对话框时
        /// </summary>
        public void OnDialogClosed()
        {
            var resultParameters = new DialogParameters
            {
                { "DataList", Items }
            };
            // 触发请求关闭事件
            RequestClosed?.Invoke(resultParameters);
        }

        /// <summary>
        /// 打开对话框时
        /// </summary>
        /// <param name="parameters"></param>
        public void OnDialogOpened(IDialogParameters parameters)
        {
            if (parameters.TryGetValue<ObservableCollection<SellModel>>("DataList", out var initialName))
            {
                Items = initialName;
            }
        }

}

http://www.dtcms.com/a/542756.html

相关文章:

  • 小米前端面试
  • 用仿站软件做的网站seo如何管理信息系统有哪些
  • 织梦网站安装dir深圳宝安高端网站建设报价
  • 做阿里巴巴网站公司怎么分享网站
  • DRAM缓存与HMB技术谁更适合工业应用?天硕工业级SSD固态硬盘提供参考
  • 企业网站首页设计原则付银行的网站建设费的会计科目
  • 网站空间国外那个好新网站百度seo如何做
  • 推广网站模板网站后台根据前端做吗
  • MSYS2+VS Code中创建c++项目
  • 岳阳网站设计改版爱企查企业信息查询官网
  • 做直播网站找哪个网站开发协议书
  • 专注徐州网站开发怎么做电影网站的
  • 网站建设信息发布超简洁WordPress
  • 蒙古文政务网站群建设工作方案计算机基础培训机构
  • 汽车网站建设需要多少钱制作一个网站的全过程
  • 富阳网站建设洛洛科技wordpress3.8模板
  • 深圳网站建设外贸做视频网站服务器怎么选择
  • 企业网站最底下做的是什么找人做网站都需要提供什么
  • 手机代码网站有哪些问题吗北京便宜做网站
  • 网站重要三要素三门峡做网站推广
  • Unity UGC IDE实现深度解析(二):端口系统与类型安全机制
  • 怎么建设自己网站首页网络开发理论
  • 网站建设可实施性报告众筹网站搭建
  • 做网站和游戏是如何赚钱网上国网推广方案
  • 一个专门做特产的网站自己制作免费网页
  • 网站域名使用怎么做待摊分录做网站书
  • 网站设计的一般步骤是什么?做网站子页
  • 延吉市住房城乡建设局官方网站域名是干嘛的
  • 抖音点赞自助网站什么是优化网站
  • FreeRTOS队列实战:血氧监测系统设计