2013-05-29 34 views
1

我的日期網格由具有交易明細列表的行組成。如何通過MVVM一次在WPF中的數據網格中選擇2行

1日兩行包括交易數量:1個詳細
第二兩行包括交易數量:2個細節和繼續。

所以,如果我選擇交易號碼:1行自動選擇下一行(與Trans Num:1)。 相同規則適用於所有具有交易編號的行。

那麼如何在wpf中實現這一點,使用戶可以看到他已經選擇了2行。我必須使用MVVM模式來實現它。

回答

0

那麼告訴數據網格選擇更多的一行是簡單的「SelectionMode = Extended」。但我認爲你需要添加一個行爲來自動選擇第二行。事情是這樣的(大多數是硬編碼的,所以它可能不是完美的工作;)

創建一個新的類,並調用它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> 
+0

能否請您給我提供關於如何添加行爲的任何樣品(在MVVM) – Ujjwal27

+0

即時通訊不知道,但也許它幫助你。祝你好運;) –

+0

和順便說一句。如果你想在MVVM模式中實現它,最好創建一個新的類庫,在這裏你可以添加所有的轉換器,行爲等... –

相關問題