• DataView usage combind with event and ViewModel From ERP-DEV


    reflesh the selected item in DataView

    when we use DataView to display a set of data. Generally, we binding the selected item to our object in ViewModel. Then, we can modify the selected item to reflesh ui. How we do it?

    1. Relative Class

      ObservableCollection
      we usually use this type to host our data source. and binding the data source of ui element to this. So, if any add or delete operation, it will
      reflect back to ui automatically.

      ListCollectionView
      This class is used to get the view of the ui element. WPF has alreadly done some background work. it use the datasource
      to generate the View object and present it into the ui. so, if we hope to operate the ui. we need the view class not the
      data source.

    2. Sample Code

    Xaml:

      <ListView Grid.Row="1" Margin="5" Background="LightYellow" Name="lstProducts" ItemsSource="{Binding Products, Mode=TwoWay}" SelectedItem="{Binding SelectedProduct, Mode=TwoWay}" SelectionChanged="selectedItemChanged">
                    <ListView.View>
                        <GridView AllowsColumnReorder="True" >
                            <GridViewColumn DisplayMemberBinding="{Binding ProductName}" Header="产品名称" Width="200"/>
                            <GridViewColumn DisplayMemberBinding="{Binding ProductSize}" Header="产品大小" Width="200"/>
                        </GridView>
                    </ListView.View>                
                </ListView>
    

    Xaml.cs event:

     private void selectedItemChanged(object sender, SelectionChangedEventArgs e)
            {
                ListView lv = sender as ListView;
                ListCollectionView lcv = (ListCollectionView)CollectionViewSource.GetDefaultView(lv.ItemsSource);
                lcv.MoveCurrentTo(lv.SelectedItem);
            }
    

    ViewModel:

     #region public properties
            public ObservableCollection<ProductDataVM> Products
            {
                get
                {
                    return _products;
                }
                set
                {
                    _products = value;
                    RaisePropertyChanged("");
                }
            }
            public ProductDataVM SelectedProduct
            {
                get
                {
                    return _selectedProduct;
                }
                set
                {
                    _selectedProduct = value;
                    RaisePropertyChanged("");
                }
            }
            #endregion
    
  • 相关阅读:
    Flask之flask-script
    Flask之flask-sqlalchemy
    sqlalchemy之基础操作
    Linux之服务管理
    python之PEP8规范
    app开发-1
    Mongodb之pymongo
    Mongodb之增删改查操作
    Mongodb之数据类型
    linux的virtualenv和virtualenvwarpper
  • 原文地址:https://www.cnblogs.com/kongshu-612/p/5494482.html
Copyright © 2020-2023  润新知