您的位置:首页 > 科技 > IT业 > web前端开发主要学哪些技术_天津免费网站建站模板_百度爱采购怎样入驻_seo快速排名优化

web前端开发主要学哪些技术_天津免费网站建站模板_百度爱采购怎样入驻_seo快速排名优化

2025/4/21 14:39:59 来源:https://blog.csdn.net/ayman_zawahiri/article/details/147373599  浏览:    关键词:web前端开发主要学哪些技术_天津免费网站建站模板_百度爱采购怎样入驻_seo快速排名优化
web前端开发主要学哪些技术_天津免费网站建站模板_百度爱采购怎样入驻_seo快速排名优化

1.1 命名规则   Aview 对应  AVIewModel,       文件夹  views  和    viewmodels

1.2 需要注册服务

//RootViewModel是主窗口

public class Bootstrapper : Bootstrapper<RootViewModel>{/// <summary>///     配置IoC容器。为数据共享创建服务/// </summary>/// <param name="builder"></param>protected override void ConfigureIoC(IStyletIoCBuilder builder){builder.Bind<SharedDataService>().ToSelf().InSingletonScope();builder.Bind<AddCategoryViewModel>().ToSelf();}

 2 主窗口打开子窗口  如:RootViewModel==>AddCategoryViewModel   

命令绑定方式:   Command="{s:Action OpenWindowAction}"

public RootViewModel _rootViewModel ;
private IWindowManager _windowManager;public RootViewModel(IWindowManager windowManager,SharedDataService sharedService)
{_windowManager = windowManager;EditContent =  new();_rootViewModel = this;_sharedService = sharedService;_sharedService.CategoryNameChanged += OnCategoryAdded;}  public void OpenWindowAction(object commandParameter){_windowManager.ShowWindow(new AddCategoryViewModel(_sharedService));  //打开子窗口}//xaml :
<Button Content="&#xe650;"Command="{s:Action OpenWindowAction}"FontFamily="{StaticResource IconFont}"FontSize="20"Foreground="{DynamicResource TextIconBrush}"Style="{StaticResource ButtonCustom}" />

3 窗口通信 , 注册服务 如上1.2:   

 private readonly SharedDataService _sharedService= new(); public NoteContentModel _noteContentModel = new();public RootViewModel(IWindowManager windowManager,SharedDataService sharedService)
{_windowManager = windowManager;EditContent =  new();_rootViewModel = this;_sharedService = sharedService;_sharedService.CategoryNameChanged += OnCategoryAdded;//监听共享数据服务事件}  /// <summary>///  共享数据服务.///  <para>如果跨线程修改数据(异步,多线程),需通过 ///  Execute.OnUIThread(() => SharedValue = "新值");</para>///  /// </summary>
public  class SharedDataService: PropertyChangedBase
{private string _CategoryName;public string CategoryName{get { return _CategoryName; }set { SetAndNotify(ref _CategoryName, value);CategoryNameChanged?.Invoke(value); // 触发事件 }}/// <summary>///  分类名称发生变化事件./// </summary>public event Action<string> CategoryNameChanged;

子窗口代码

 public partial class AddCategoryViewModel : Screen{private readonly SharedDataService _sharedService;public AddCategoryViewModel() { }// 通过构造函数注入 public AddCategoryViewModel(SharedDataService sharedService){_sharedService = sharedService;}private string _categoryName;public string CategoryName{get => _categoryName;set => SetAndNotify(ref _categoryName, value);}// 使用 Stylet 的 RelayCommand 替代 System.Windows.Input public RelayCommand WinClosedCommand => new RelayCommand((o) =>{// 更新共享数据 _sharedService.CategoryName = CategoryName;((HC.PopupWindow)o).Close();关闭窗口(Stylet 标准方式)//this.RequestClose(true);});}

<hc:Window x:Class="ProgramNotes.Views.AddCategoryView"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:hc="https://handyorg.github.io/handycontrol"xmlns:local="clr-namespace:ProgramNotes.Views"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:vm="clr-namespace:ProgramNotes.ViewModels"xmlns:i="http://schemas.microsoft.com/xaml/behaviors"xmlns:s="https://github.com/canton7/Stylet"Width="300"Height="50"d:DataContext="{d:DesignInstance Type=vm:AddCategoryViewModel}"AllowsTransparency="True"ShowInTaskbar="False"ShowTitle="False"BorderThickness="1"Background="{StaticResource WindowBrush}" WindowStartupLocation="CenterScreen"WindowStyle=" None"mc:Ignorable="d"><Grid Margin="8"><hc:SimplePanel ><TextBlock Margin="0"HorizontalAlignment="Left"VerticalAlignment="Center"Text="新的类别名称 " /><TextBox HorizontalAlignment="Stretch"Height="28"Text="{Binding CategoryName, Mode=TwoWay}"Margin="75,0 50 0"/></hc:SimplePanel><Button Grid.Row="0"Grid.Column="1"Margin="0"Style="{StaticResource ButtonPrimary}"Command="{Binding WinClosedCommand }"CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type hc:Window}}}"HorizontalAlignment="Right"VerticalAlignment="Center"Height="26"Content="确定" ></Button></Grid>
</hc:Window>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com