C# 如何设计用于编辑多个数据库表的窗口
我有一个包含4个表的数据库。用户应该能够编辑、添加、删除每个表中的行。该表将显示在数据网格中。一个表包含1000-2000行,但其他表最多只有50行 是否有一种“更好”的方式显示4个数据网格,而不是为每个表使用TabControl和tab 用户要求该程序应类似于Excel 如果TabControl是一条路要走。我应该在启动时还是在用户选择选项卡时加载数据网格C# 如何设计用于编辑多个数据库表的窗口,c#,wpf,datagrid,C#,Wpf,Datagrid,我有一个包含4个表的数据库。用户应该能够编辑、添加、删除每个表中的行。该表将显示在数据网格中。一个表包含1000-2000行,但其他表最多只有50行 是否有一种“更好”的方式显示4个数据网格,而不是为每个表使用TabControl和tab 用户要求该程序应类似于Excel 如果TabControl是一条路要走。我应该在启动时还是在用户选择选项卡时加载数据网格 <Window x:Class="Foo.MainWindow" xmlns="http://schemas.mic
<Window
x:Class="Foo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Foo"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="611"
Height="401"
mc:Ignorable="d">
<Grid>
<TabControl x:Name="tcControl" >
<TabItem Header="FooTable1">
<Grid>
<DataGrid
x:Name="dataGrid1"
Margin="57,20,60,37"
AutoGenerateColumns="False"
CanUserAddRows="false"
EnableRowVirtualization="True"
ItemsSource="{Binding Path=FooTable1, Mode=TwoWay}"
RowDetailsVisibilityMode="VisibleWhenSelected"
RowEditEnding="laserDataDataGrid_RowEditEnding"
ScrollViewer.CanContentScroll="True"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto"
SelectionMode="Single"
SelectionUnit="FullRow">
<DataGrid.Columns>
<!-- ... -->
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
<TabItem Header="FooTable2">
<Grid>
<DataGrid
x:Name="dataGrid2"
Margin="57,20,60,37"
AutoGenerateColumns="False"
CanUserAddRows="false"
EnableRowVirtualization="True"
ItemsSource="{Binding Path=FooTable2, Mode=TwoWay}"
RowDetailsVisibilityMode="VisibleWhenSelected"
RowEditEnding="laserDataDataGrid_RowEditEnding"
ScrollViewer.CanContentScroll="True"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto"
SelectionMode="Single"
SelectionUnit="FullRow">
<DataGrid.Columns>
<!-- ... -->
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
<TabItem Header="FooTable3">
<Grid>
<DataGrid
x:Name="dataGrid3"
Margin="57,20,60,37"
AutoGenerateColumns="False"
CanUserAddRows="false"
EnableRowVirtualization="True"
ItemsSource="{Binding Path=FooTable3, Mode=TwoWay}"
RowDetailsVisibilityMode="VisibleWhenSelected"
RowEditEnding="laserDataDataGrid_RowEditEnding"
ScrollViewer.CanContentScroll="True"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto"
SelectionMode="Single"
SelectionUnit="FullRow">
<DataGrid.Columns>
<!-- ... -->
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
<TabItem Header="FooTable4">
<Grid>
<DataGrid
x:Name="dataGrid4"
Margin="57,20,60,37"
AutoGenerateColumns="False"
CanUserAddRows="false"
EnableRowVirtualization="True"
ItemsSource="{Binding Path=FooTable4, Mode=TwoWay}"
RowDetailsVisibilityMode="VisibleWhenSelected"
RowEditEnding="laserDataDataGrid_RowEditEnding"
ScrollViewer.CanContentScroll="True"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto"
SelectionMode="Single"
SelectionUnit="FullRow">
<DataGrid.Columns>
<!-- ... -->
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
</TabControl>
</Grid>
</Window>
无论哪种方式都可以。你在征求意见(通常与“什么是……的最佳方式”问题相同)。你能描述一下这个问题吗?例如,“太慢了”。也许你是在要求(添加抽象概念等)。“应该看起来像Excel”-你坚持布局吗?我的问题是,我发现在一个选项卡控件中处理四个数据网格有点“混乱”。xaml文件的长度略大于500行。但我会在代码回顾中询问。非常感谢。请参见和(似乎与您的相同)TabControl
。UserControls将使其不那么凌乱。谢谢