zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    关于排列问题的一系列归类
    [翻译] 服务定位器是反模式
    [翻译] Autofac 入门文档
    关系,表和封闭世界假定
    Elasticsearch实现类似 like '?%' 搜索
    LVS + keepalived(DR) 实战
    kafka集群中常见错误的解决方法:kafka.common.KafkaException: Should not set log end offset on partition
    Elasticsearch1.7服务搭建与入门操作
    Ubuntu下安装Tomcat7
    VB编程技巧推荐
  • 原文地址:https://www.cnblogs.com/kongshu-612/p/5494482.html
Copyright © 2011-2022 走看看