zoukankan      html  css  js  c++  java
  • WPF mvvm select multi items via

    1.install-package Microsoft.Xaml.Behaviors.Wpf;

    2.xmlns:i="http://schemas.microsoft.com/xaml/behaviors";

    3.

    <DataGrid x:Name="dg" Grid.Row="0" ItemsSource="{Binding DataList,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
    AutoGenerateColumns="False" SelectionMode="Extended"
    Width="Auto" Height="Auto" HorizontalAlignment="Center" VerticalAlignment="Center">
    <i:Interaction.Triggers>
    <i:EventTrigger EventName="SelectionChanged">
    <i:InvokeCommandAction Command="{Binding SelectionChangedCommand}" CommandParameter="{Binding ElementName=dg,Path=SelectedItems}"/>
    </i:EventTrigger>
    </i:Interaction.Triggers>

    4.In MVVM,

    private ObservableCollection<SalesOrderDetail> selectedItems;
    public ObservableCollection<SalesOrderDetail> SelectedItems
    {
    get
    {
    return selectedItems;
    }
    set
    {
    if(value!=selectedItems)
    {
    selectedItems = value;
    OnPropertyChanged("SelectedItems");
    }
    }
    }

    private DelegateCommand selectionChangedCommand;
    public DelegateCommand SelectionChangedCommand
    {
    get
    {
    if(selectionChangedCommand==null)
    {
    selectionChangedCommand = new DelegateCommand(SelectionChangedCommandExecuted);
    }
    return selectionChangedCommand;
    }
    }

    private void SelectionChangedCommandExecuted(object obj)
    {
    var selectedOrders=new List<SalesOrderDetail>((obj as IList).Cast<SalesOrderDetail>());
    if(selectedOrders!=null && selectedOrders.Any())
    {
    SelectedItems = new ObservableCollection<SalesOrderDetail>(selectedOrders);
    }
    }

  • 相关阅读:
    如何开始学习编程? 这 3 步很重要
    php正则表达式验证手机/固定电话/邮箱/身份证/银行卡自定义函数
    【经验分享】-PHP程序员的技能图谱
    PHP程序员的技能图谱
    PHP程序员要掌握的技能
    冒泡排序
    文件下载方法
    加密,解密方法
    获取真实IP
    二维数组根据某个字段排序
  • 原文地址:https://www.cnblogs.com/Fred1987/p/14874561.html
Copyright © 2011-2022 走看看