1
我的日期網格由具有交易明細列表的行組成。如何通過MVVM一次在WPF中的數據網格中選擇2行
1日兩行包括交易數量:1個詳細
第二兩行包括交易數量:2個細節和繼續。
所以,如果我選擇交易號碼:1行自動選擇下一行(與Trans Num:1)。 相同規則適用於所有具有交易編號的行。
那麼如何在wpf中實現這一點,使用戶可以看到他已經選擇了2行。我必須使用MVVM模式來實現它。
我的日期網格由具有交易明細列表的行組成。如何通過MVVM一次在WPF中的數據網格中選擇2行
1日兩行包括交易數量:1個詳細
第二兩行包括交易數量:2個細節和繼續。
所以,如果我選擇交易號碼:1行自動選擇下一行(與Trans Num:1)。 相同規則適用於所有具有交易編號的行。
那麼如何在wpf中實現這一點,使用戶可以看到他已經選擇了2行。我必須使用MVVM模式來實現它。
那麼告訴數據網格選擇更多的一行是簡單的「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>
能否請您給我提供關於如何添加行爲的任何樣品(在MVVM) – Ujjwal27
即時通訊不知道,但也許它幫助你。祝你好運;) –
和順便說一句。如果你想在MVVM模式中實現它,最好創建一個新的類庫,在這裏你可以添加所有的轉換器,行爲等... –