2015-07-20 1 views
1

У меня есть наблюдаемая коллекция, которая имеет три поля:Динамически Заполнение сетки данных с помощью набора значений с строкой + колонками координат

Cell Value, индекс столбца, индекс строки

(Edit: Каждый объект в списке есть эти три поля)

Есть ли способ привязать эту наблюдаемую коллекцию к сетке данных, используя индекс столбца и индекс строки, чтобы указать местоположение каждой ячейки? Наблюдаемая коллекция находится в порядке столбцов (первый объект - [строка 1, столбец 1], второй объект - [строка 1, col 2] и т. Д.), Если это помогает.

Важно, чтобы он соответствовал шаблону MVVM, который вызывает у меня проблему.

ответ

0

Вы можете взглянуть на UniformGrid. Вы можете привязать к Rows и Columns, чтобы рассказать ему свои размеры (свойства модели модели). Затем вы строите вокруг ItemsControl и подаете свои данные через ItemsSource. Остальное касается стиля (как вы хотите выглядеть как ваш стол). Следующий XAML может дать вам отправную точку. MyList вот просто список int для тестирования.

<ItemsControl ItemsSource="{Binding MyList}"> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <UniformGrid Rows="{Binding Rows}" Columns="{Binding Columns}"/> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding}"/> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl>  
+0

Это хорошее решение, однако в этом случае мне нужно иметь возможность выбирать ячейки и читать данные, как вы можете делать с DataGrid. Похоже, что UniformGrid позволяет мне распечатывать значения ячеек. –

0

Хорошо смотрит на эту схему. Допустим, у меня есть объект Person, у которого есть два свойства: FirstName и LastName. Теперь у меня есть коллекция Личности.

Теперь, если у вас есть dataGrid, ваши столбцы будут заполнены в соответствии с вашими свойствами объекта (в этом примере firstName и lastName), и для каждого элемента в наших коллекциях у нас будет новая строка. Так что это иллюстрация этого DataGrid:

___ | FirstName | LastName 

1 FirstItem LastFirstItem 
2 SecondItem LastSecondItem 
Смежные вопросы