我使用的是LinQToSql和Hashtable(System.Collections),它们都使用相同的GridView,datacontext将根据Checkbox进行更改。只有其中一个是活跃的。
问题是,哈希表(只是键值)的结构与LinqToSql类的结构不同。
这适用于LinQToSql类(DataContext):
<DataGrid x:Name="wordListView" Margin="17,156,0,0"
VirtualizingStackPanel.IsVirtualizing="True"
ScrollViewer.CanContentScroll="True" AutoGenerateColumns="False"
ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding ID}">
</DataGridTextColumn>
<DataGridTemplateColumn Header="Image" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Height="200" Source="{Binding Path}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Name" Binding="{Binding Path,Converter={StaticResource stringReplacer}}">
</DataGridTextColumn>
<DataGridTextColumn Header="Path" Binding="{Binding Path}">
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
我想使用1个GridView,但使用不同的数据。
我想到了这个(不能让它起作用):
<DataTemplate x:Key="fromDB">
//using the DataGrid.Columns for LINQToSQL
</DataTemplate>
<DataTemplate x:Key="fromFile">
//just use binding, or a different DataGrid.Columns
</DataTemplate>