我想在字典中使用新的datagrid foreach键动态创建视图。是否可以在XAML中执行此操作?
我的字典是:
字典< string,List<对象> >
关键是字典的标题,对象列表将显示在数据网格中。
我想在我的字典中生成一个datagrid foreach键。
例如,如果我的词典中有这些条目:
<"Toto", [{"prop1":"tata", "prop2":"titi"}, {"prop1":"tata2", "prop2":"titi2"}]>
<"Tutu", [{"prop1":"tatax", "prop2":"titix"}]>
我想在我的程序中显示:
TOTO TUTU
------------- --------------
Prop1 | Prop2 Prop1 | Prop2
------|------ -------|------
tata | titi tatax | titix
tata2 | titi2
在ASP.NET中,您可以在视图中间使用@foreach,但是如何在XAML / WPF中生成它?
答案 0 :(得分:1)
这是我在@ASh和@CelsoLívero的帮助下完成的代码工作代码,我只是发布它以帮助其他人,如果他们有同样的问题。
我的字典值有List<Tag>
,这就是为什么我需要放OneWay
(因为它是一个只读的数据网格,它满足我的需要)但是如果有人想拥有一个TwoWay
绑定,您需要创建ObservableCollection
而不是List
。
<ItemsControl x:Name="itemControlTags"
ItemsSource="{Binding CurrentModuleItem.DicoTags}"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal"
Background="White"
Width="{Binding ActualWidth, ElementName=itemControlTags}"
Height="{Binding ActualHeight, ElementName=itemControlTags}" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Key}"></TextBlock>
<DataGrid AutoGenerateColumns="True"
CanUserAddRows="False"
IsReadOnly="True"
CanUserDeleteRows="False"
Name="TagsDatagrid"
ItemsSource="{Binding Path=Value, Mode=OneWay}">
</DataGrid>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>