将多个滚动数据表放入堆栈面板WPF

时间:2016-06-10 19:36:53

标签: c# wpf datagrid stackpanel

我是来自VB.NET和WinForms的WPF和XAML的新手,所以如果这篇文章关闭我会道歉。我正在尝试将多个sql绑定数据表设置到其中包含网格的堆栈面板中。堆栈面板有一个网格,我当时希望放置多个数据表,以便它可以是一个" row"数据表。我遇到了一个问题,其中每个数据表的条目多于数据表的空间,并且没有滚动条。我尝试使用滚动查看器,但没有成功,到目前为止我找到的所有帖子都无法帮助我,因为他们将迫使我重新创建我的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中你可以看到我有一个带有位置的文本块,然后是下一个&#34; Row&#34;我将设置多个数据表,希望沿着网格。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

你在这里提出了一个非常广泛的问题。我想你应该对MVVM做一些研究。它有助于构建WPF设计。一般的想法是将XAML中的元素(在View中)绑定到ViewModel中的公共属性。然后对属性的更改会导致元素更改,从而导致UI更改。模型包含数据,并涉及从数据库获取数据。您可能在绑定到Datagrid的ViewModel中具有ObservableCollection类型的属性。 ViewModel将从Model填充ObservableCollection。使用MVVM,你几乎没有代码。关于你的&#34; SQL命令填写的一条评论&#34;,我假设这是在你的代码背后。您需要引用DGLine2HotParts.Datacontext或DGLine2HotParts.ItemSource来向网格添加数据。这是一个尝试指出你在一个特定的方向而不是一个全面的答案。