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);
    }
    }

  • 相关阅读:
    [转]C#正则表达式小结
    Silverlight 参考:KeyEventArgs.Handled 属性
    一步一步搭建免费的Silverlight 2开发环境(转载)
    Silverlight2 跨域调用Web服务的方法
    BinaryFormatter 类
    从说事到流程的理解
    比尔盖茨给青少年的11条准则
    燃烧热情
    GOF模式之乱记一通
    学而不思则罔,思而不学则殆
  • 原文地址:https://www.cnblogs.com/Fred1987/p/14874561.html
Copyright © 2011-2022 走看看