将多个滚动数据表放入堆栈面板 WPF 上的网格中

Place multiple scrolling data tables into a grid on a stack panel WPF

我是 WPF 的新手,XAML 来自 VB.NET 和 WinForms,所以如果 post 关闭,我深表歉意。我正在尝试将多个 sql 绑定数据 table 设置到一个包含网格的堆栈面板中。堆栈面板有一个网格,然后我希望在其中放置多个数据 table,这样它将是一个 "row" 的数据 table。我 运行 遇到了一个问题,其中每个数据 table 的条目数多于数据 table 的条目数 space 并且没有滚动条。我尝试使用滚动查看器但没有成功,到目前为止我发现的所有 post 都无法帮助我,因为它们会迫使我重新创建我的 xaml 树。到目前为止,这是我的代码。

------XAML------

 <Window x:Class="Lines.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="251.7" Width="1058">

<Grid x:Name="GridMain">
    <StackPanel x:Name="StackMain" HorizontalAlignment="Left" Height="100" Margin="10,10,0,0" VerticalAlignment="Top" Width="1030" >
        <TextBlock FontSize="18" Foreground="Black" FontWeight="Bold" Text="Line 2" HorizontalAlignment="Center" />
        <Grid x:Name="Line2Information">
            <ScrollViewer x:Name="SVLine2HotParts" HorizontalAlignment="Left">
                <DataGrid x:Name="DGLine2HotParts">
                </DataGrid>
            </ScrollViewer>
        </Grid>
    </StackPanel>
</Grid>

------------------------C#----------------

             //SQL command fill 
        SqlConnection conn = new SqlConnection(Connectionstring);
        SqlDataAdapter da = new SqlDataAdapter("SELECT * from Table", conn);
        DataTable ds = new DataTable();
        da.Fill(ds);
        Datagrid.ItemsSource = ds.DefaultView;

所以在 XML 中你可以看到我有一个带有位置的文本块,然后在下一个 "Row" 下我将设置多个数据 tables,希望沿着网格。有帮助吗?

您在这里问了一个非常宽泛的问题。我认为你应该对 MVVM 做一些研究。它有助于构建 WPF 设计。一般的想法是将 XAML(在视图中)中的元素绑定到 ViewModel 中的 public 属性。然后对 属性 的更改会导致对元素的更改,从而导致 UI 的更改。模型包含数据并将关注从数据库中获取数据。在绑定到 Datagrid 的 ViewModel 中,您可能会有一个 属性 类型的 ObservableCollection。 ViewModel 将从模型中填充 ObservableCollection。使用 MVVM,您几乎没有代码。关于您的 "SQL command fill" 的一条评论,我假设这是在您的代码后面。您需要引用 DGLine2HotParts.Datacontext 或 DGLine2HotParts.ItemSource 才能将数据添加到网格中。这是试图为您指出一个特定的方向,而不是一个全面的答案。