ColSpan для Silverlight Datagrid - PullRequest
2 голосов
/ 17 марта 2009

У меня есть необходимость настроить Datagrid для системы TimeManagement, используя строки. Мой желаемый вид выглядит примерно так:

Customers| Projects  | Tasks  | Moanday | Tuesday | Wednesday | Thursday | Friday |
         |           | Task 1 |   0     |   0     |    0      |    0     |   0    |
Customer1| Project 1 | Task 2 |   0     |   0     |    0      |    0     |   0    |
         |           | Task 3 |   0     |   0     |    0      |    0     |   0    |

Предпочтительно, я хотел бы иметь возможность просто предоставить DataGrid.ItemSource Список клиентов, и он должен работать на основе этого. Моя текущая модель

    public class Customer
    {
       public string Name{get; set;}
       public List<Project> Projects{ get; set;}
    }
    public class Project
    {
       public string Name {get; set;}
       public List<Task> Tasks{ get; set; }
    }
    public class Task
    {
       public string Name { get; set;}
       public Week Week { get; set; }
    }
    public class Week 
    {
       public double Monday { get; set; }
       ...
    } 
  • Я бы хотел, чтобы в ячейке клиента был интервал строк по всем строкам проекта.
  • Мне бы хотелось, чтобы в ячейке Project был интервал строк по всем строкам задач.
  • И, самое главное, мне нужно, чтобы пользователь мог перемещаться, используя клавиши со стрелками на клавиатуре.

Моей первой попыткой было создать новые сетки данных внутри ячеек другой сетки данных. Кажется, пользователь не может перемещаться от одной сетки данных к другой с помощью клавиш со стрелками.

Любая помощь очень ценится.

1 Ответ

1 голос
/ 20 марта 2009

Взгляните на «RowDetailsTemplate» в DataGrid. Это раздел, который можно развернуть под строкой. В шаблоне RowDetails вы можете добавить все, что вам нужно, например, сетку или даже сетку данных. Установите для атрибута RowDetailsVisibilityMode значение Visible, и он всегда будет отображаться.

Удачи.

- Matt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...