1

私の日付グリッド トランザクションの詳細のリストを含む行で構成されます。

最初の 2 行はトランザクション番号 : 1の詳細
で構成されます。2 番目の 2 行はトランザクション番号 : 2の詳細で構成され、続きます。

したがって、Transaction Number : 1 Row を選択すると、自動的に次の行が選択されます (Trans Num:1 で)。同じルールがトランザクション番号を持つすべての行に適用されます。

したがって、wpfでこれを達成して、2行を選択したことをユーザーに表示するにはどうすればよいですか。MVVM パターンを使用して実装する必要があります。

4

1 に答える 1

0

データ グリッドに複数の行を選択するように指示するのは、単純な "SelectionMode=Extended" です。ただし、2 行目を自動的に選択する動作を追加する必要があると思います。このようなもの(ほとんどがハードコードされているため、完全に機能しない場合があります;)

新しいクラスを作成し、それを DataGridSelectMulti.cs と呼びます

using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Text;

namespace DataGridSelectMulti
{
    public class DataGridSelectMulti: CommandBehaviorBase<DataGrid>
    {
               protected override void OnAttached()
        {
            base.OnAttached();
            this.AssociatedObject.SelectionChanged += new SelectionChangedEventHandler(AssociatedObject_SelectionChanged);
        }

        void AssociatedObject_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (sender is DataGrid)
            {
                DataGrid grid = (sender as DataGrid);
                if (grid.SelectedItem != null)
                {
                    grid.UpdateLayout();
                    //TODO
                    // Something like grid.SelectedItems = List
                }
            }

        }



        protected override void OnDetaching()
        {
            base.OnDetaching();
            this.AssociatedObject.SelectionChanged -= new SelectionChangedEventHandler(AssociatedObject_SelectionChanged);
        }
    }



XAML

<Grid>
<DataGrid name='' Selcted...>
            <i:Interaction.Behaviors>
                <my1:DataGridSelectMulti/>
            </i:Interaction.Behaviors>
<DataGrid .Columns />
</DataGrid >
</Grid>
于 2013-05-29T06:48:42.207 に答える