|
WPF - DataGrid - Один грид под разные источники данных
|
|||
---|---|---|---|
#18+
У меня есть источники данных с одинаковой структурой. Есть грид, в котором я создал столбцы, привязки и прочее для этой структуры данных. Теперь я хочу поставить рядом два грида и два разных источника (но с одной структурой данных) привязать каждый к своему гриду. Как это сделать без копирования всей разметки грида? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 10:10 |
|
WPF - DataGrid - Один грид под разные источники данных
|
|||
---|---|---|---|
#18+
Т. е. хотелось бы что-то вроде DataTemplate - указал ContentPresenter для одного источника данных, потом рядом поставил для другого. Презентеры намапил на шаблон, в которых вышеописанный мной грид содержится. Не могу понять, как это сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 10:11 |
|
WPF - DataGrid - Один грид под разные источники данных
|
|||
---|---|---|---|
#18+
UserControl создаете, в нём Grid с вашей разметкой , контекст биндите. Профит. В чём проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 16:53 |
|
WPF - DataGrid - Один грид под разные источники данных
|
|||
---|---|---|---|
#18+
Объявляешь DataGrid со всей необходимой структурой как ресурс x:Key="myGrid" (лучше в отдельном словаре) и прописываешь его свойства x:Shared="False", ItemsSource={Binding}. В разметке самого окна пишешь: Код: xml 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2014, 10:21 |
|
WPF - DataGrid - Один грид под разные источники данных
|
|||
---|---|---|---|
#18+
NickopollОбъявляешь DataGrid со всей необходимой структурой как ресурс x:Key="myGrid" (лучше в отдельном словаре) и прописываешь его свойства x:Shared="False", ItemsSource={Binding}. В разметке самого окна пишешь: Код: xml 1. 2.
Этот вариант у меня получился. Это выглядит так: Разметка окна Код: xml 1. 2. 3.
Разметка файла ресурсов Код: xml 1. 2. 3.
Roman MejtesUserControl создаете, в нём Grid с вашей разметкой , контекст биндите. Профит. В чём проблема? Этот вариант у меня тоже получился. Это выглядит так: Разметка окна Код: xml 1. 2. 3.
Разметка файла ресурсов Код: xml 1. 2. 3. 4.
Разметка UserControl Код: xml 1. 2. 3. 4. 5.
Какой вариант лучше и в каких случаях? В моём случае, похоже, любой подходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2014, 10:45 |
|
WPF - DataGrid - Один грид под разные источники данных
|
|||
---|---|---|---|
#18+
А, нет, вру. 1. Если разные способы к разным источникам данных применять, то работает. 2. Если применить к разным источникам данных способ с ContentPresenter, то работает. 3. А если применить к разным источникам данных способ с ContentControl, то отображается таблица только для последнего элемента, а для первого - не отображается. Т. е. делаю как в способе с ContentControl, но для двух источников данных: <ContentControl Grid.Column="0" Content="{StaticResource myTable}" DataContext="{Binding Source={StaticResource myViewSource1}}" /> <ContentControl Grid.Column="1" Content="{StaticResource myTable}" DataContext="{Binding Source={StaticResource myViewSource2}}" /> а отображается только таблица для того элемента, который последний использовал ресурс myTable. Т. е. в данном случае это ContentControl с источником данных myViewSource2. Если поменять местами в разметке эти контролы, то отображаться будет только для источника myViewSource1. Почему так? В случае с презентерами и шаблоном данных всё работает в любом порядке. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2014, 10:57 |
|
|
start [/forum/topic.php?fid=21&fpage=19&tid=1440982]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
16ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 285ms |
total: | 421ms |
0 / 0 |