2016-06-10 3 views
0

Я новичок в WPF и XAML из VB.NET и WinForms, поэтому прошу прощения, если этот пост отключен. Я пытаюсь настроить несколько таблиц данных, привязанных к sql, на панель стека, в которой есть сетка. На панели стека есть сетка, в которой я тогда надеялся разместить несколько таблиц данных так, чтобы это было «строка» таблиц данных. Я столкнулся с проблемой, когда в каждой таблице данных больше записей, чем у таблицы данных, для которой нет пробела, и нет полосы прокрутки. Я попытался использовать средство просмотра прокрутки, но не увенчался успехом, и все сообщения, которые я нашел до сих пор, не смогли мне помочь из-за того, что они заставят меня воссоздать мое дерево xaml. Вот мой код до сих пор.Поместите несколько таблиц данных прокрутки в сетку на панели стека WPF

------ 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 вы можете увидеть у меня есть TextBlock с места, а затем на следующий " Строка "вниз Я буду устанавливать несколько таблиц данных, надеюсь, вдоль сетки. Любая помощь?

ответ

1

Здесь вы задаете очень широкий вопрос. Я думаю, вам нужно провести некоторое исследование в MVVM. Он помогает структурировать проект WPF. Общая идея заключается в том, что вы привязываете элемент в XAML (в представлении) к общедоступному свойству в ViewModel. Затем изменения свойства приводят к изменениям элемента и, следовательно, к пользовательскому интерфейсу. Модель содержит данные и будет связана с получением данных из БД. Вероятно, у вас будет свойство типа ObservableCollection в ViewModel, связанное с Datagrid. ViewModel заполнит ObservableCollection из модели. С MVVM у вас мало кода. Один комментарий к вашей «SQL-команде заполняет», я предполагаю, что это в вашем коде. Для добавления данных в сетку вам необходимо обратиться к DGLine2HotParts.Datacontext или DGLine2HotParts.ItemSource. Это попытка указать вас в определенном направлении, а не на всеобъемлющий ответ.

+0

Да, я собираюсь получить хорошую книгу и сделать некоторые исследования. Этот WPF waaaaay отличается от оконных форм, но выглядит намного лучше. Кстати, я понял причину, по которой я не мог видеть полосу прокрутки, потому что у меня была определенная высота панели стека. Как только я удалил его, панель стека расширилась до того места, где мне это нужно. После этого я могу определить scrollviewer для того, что я хочу контролировать высоту сетки. Спасибо за комментарий SQL-запроса. – Cheddar

 Смежные вопросы

  • Нет связанных вопросов^_^