...
While the ListView on the right has the correct content due to the proper binding. Further discussion on Stack Overflow.
<catel:UserControl x:Class="Catel.Examples.WPF.Commanding.Views.DocumentView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:catel="http://catel.codeplex.com"> <catel:UserControl.Resources> <ResourceDictionary> <!-- The Resource ListViewTitle will be found at run time --> <sys:String x:Key="ListViewTitle">Items:</sys:String> <!-- The Resource DataSourceGroup will be found but the binding will not work. --> <CollectionViewSource x:Key="DataSourceGroup" Source="{Binding ProjectDataSources}" IsLiveSortingRequested="True" IsLiveGroupingRequested="True"> <CollectionViewSource.GroupDescriptions> <PropertyGroupDescription PropertyName="DataSourceType" /> </CollectionViewSource.GroupDescriptions> </CollectionViewSource> </ResourceDictionary> </catel:UserControl.Resources> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="5" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions>
<ScrollViewer Grid.Column="0"> <StackPanel> <StackPanel.Resources>
</StackPanel.Resources>
<Label Foreground="Blue" Margin="5,5,5,0" Content="{StaticResource ListViewTitle}"></Label> <ListView Name="_datasourcelv1" ItemsSource="{Binding Source={StaticResource DataSourceGroup}}"> <ListView.View> <GridView> <GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding ShortURI}" /> <GridViewColumn Header="Type" Width="50" DisplayMemberBinding="{Binding DataSourceType}" /> </GridView> </ListView.View>
<ListView.GroupStyle> <GroupStyle> <GroupStyle.HeaderTemplate> <DataTemplate> <TextBlock Text="{Binding Name}"/> </DataTemplate> </GroupStyle.HeaderTemplate> </GroupStyle> </ListView.GroupStyle> </ListView> </StackPanel> </ScrollViewer> <GridSplitter Grid.Column="1" Width="5" HorizontalAlignment="Stretch" /> <ScrollViewer Grid.Column="2"> <StackPanel> <StackPanel.Resources> <!-- The solution is to embed the resource inside the UserControl, this way the binding is within the runtime Visual Tree. --> <CollectionViewSource x:Key="DataSourceGroup2" Source="{Binding ProjectDataSources}" IsLiveSortingRequested="True" IsLiveGroupingRequested="True"> <CollectionViewSource.GroupDescriptions> <PropertyGroupDescription PropertyName="DataSourceType" /> </CollectionViewSource.GroupDescriptions> </CollectionViewSource> </StackPanel.Resources>
<Label Foreground="Blue" Margin="5,5,5,0" Content="{StaticResource ListViewTitle}"></Label> <ListView Name="_datasourcelv2" ItemsSource="{Binding Source={StaticResource DataSourceGroup2}}"> <ListView.View> <GridView> <GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding ShortURI}" /> <GridViewColumn Header="Type" Width="50" DisplayMemberBinding="{Binding DataSourceType}" /> </GridView> </ListView.View>
<ListView.GroupStyle> <GroupStyle> <GroupStyle.HeaderTemplate> <DataTemplate> <TextBlock Text="{Binding Name}"/> </DataTemplate> </GroupStyle.HeaderTemplate> </GroupStyle> </ListView.GroupStyle> </ListView> </StackPanel> </ScrollViewer> <!-- <TabControl> <TabItem Header="Plots" > <TextBlock Text="IT WORKS!" /> </TabItem> <TabItem Header="Aggregate"/> <TabItem Header="Overlay"> <TextBlock Text="IT WORKS!" /> </TabItem> </TabControl> --> </Grid> <!-- <Border BorderThickness="1" BorderBrush="Gray"> <catel:StackGrid> <catel:StackGrid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> </catel:StackGrid.ColumnDefinitions>
<TextBlock Text="{Binding LastCommandExecutionDateTime, StringFormat='Last executed command time: \{0:HH:mm:ss.fff\}'}" /> </catel:StackGrid> </Border> -->
</catel:UserControl>