0
A
回答
1
我假設你有一個網格綁定到類似ObservableCollection
與SelectedItem屬性,如下所示: <DataGrid ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}">
。
所以,在您的視圖模型或代碼隱藏,你可以這樣做:
int currentItemPosition = Items.IndexOf(SelectedItem) + 1;
if (currentItemPosition == 1)
Items.Insert(0, new Item { Name = "New Item Before" });
else
Items.Insert(currentItemPosition - 1, new Item { Name = "New Item Before" });
Items.Insert(currentItemPosition + 1, new Item { Name = "New Item After" });
這裏有一個完整的例子,我只是用一個空白WPF項目。 後面的代碼:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Items = new ObservableCollection<Item>
{
new Item {Name = "Item 1"},
new Item {Name = "Item 2"},
new Item {Name = "Item 3"}
};
DataContext = this;
}
public ObservableCollection<Item> Items { get; set; }
public Item SelectedItem { get; set; }
private void Button_Click_1(object sender, RoutedEventArgs e)
{
int currentItemPosition = Items.IndexOf(SelectedItem) + 1;
if (currentItemPosition == 1)
Items.Insert(0, new Item { Name = "New Item Before" });
else
Items.Insert(currentItemPosition - 1, new Item { Name = "New Item Before" });
Items.Insert(currentItemPosition + 1, new Item { Name = "New Item After" });
}
}
public class Item
{
public string Name { get; set; }
}
XAML:
<Window x:Class="DataGridTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Grid.Row="0" Content="Add Rows" Click="Button_Click_1" />
<DataGrid Grid.Row="1" ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}" />
</Grid>
</Window>
相關問題
- 1. 在字符串匹配之前和之後的Python插入行
- 2. 在節點之前和之後插入
- 3. MySQL在查詢中獲取當前行之前和之後的行
- 4. 在JQuery中的選定行之後插入一個新行
- 5. 在大熊貓的興趣行之前和之後選擇行
- 6. 在第一行之前插入行
- 7. 如何在Android sqlite中的現有行之前插入新行?
- 8. 在javascript中選定的文本之前和之後插入文本
- 9. 以某種順序選擇「之前」給定行之前的行
- 10. 之前和之後的Git行號
- 11. 多行之前和之後的Mysql
- 12. MongoDB:在給定行之前和之後依次返回行?
- 13. 如何在模式之前和行號之後使用sed插入一行?
- 14. 獲取具有特定條件的選定行的行之前和之後
- 15. 在刪除wpf中的datagrid行之前刪除確認C#
- 16. ie7在表單標籤之後/之前插入換行符
- 17. SQL:給定行之前和之後的行
- 18. 在使用jQuery的當前行之後添加新表格行
- 19. 如何在當前行之後加入上面的行?
- 20. 正則表達式在字符之後插入點(。),在新行之前
- 21. 如何獲取MYSQL中當前行之前的行的總和?
- 22. 使用:之前和之後:CSS選擇器插入Html
- 23. 在使用sed的特定行之前插入多行文本
- 24. 在插入或更新之前檢查MySQL行中的數據
- 25. SQL - 在列值更改之前和之後選擇行日期
- 26. 如何將當前行移動到Vim之上的行之後?
- 27. Flatiron Union「之後」功能在「之前」功能之前執行?
- 28. NHibernate - 刷新之前/之後選擇?
- 29. NSMutablearray在其他元素之前或之後插入新元素
- 30. 用途:之前和之後:頁腳定位選擇器之後
如果將的ItemSource綁定到一個ObservableCollection然後修改集合會做的伎倆。 你能分享你試過的代碼嗎? –
我試着玩數據網格的ControlTemplate,但沒有成功。 –