Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 16th, 2012  |  syntax: None  |  size: 2.44 KB  |  hits: 22  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Recreate Xaml in Code
  2. <ListView Name="lbDevices" SelectionChanged="lbDevices_SelectionChanged" VerticalAlignment="Stretch" Grid.Row="1">
  3.         <ListView.ItemsPanel>
  4.             <ItemsPanelTemplate>
  5.                 <WrapPanel Orientation="Horizontal" Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}" ScrollViewer.HorizontalScrollBarVisibility="Hidden"></WrapPanel>
  6.             </ItemsPanelTemplate>
  7.         </ListView.ItemsPanel>
  8.         <ListView.View>
  9.             <GridView>
  10.                 <GridView.ColumnHeaderContainerStyle>
  11.                     <Style>
  12.                         <Setter Property="FrameworkElement.Visibility" Value="Collapsed" />
  13.                     </Style>
  14.                 </GridView.ColumnHeaderContainerStyle>
  15.                 <GridViewColumn>
  16.                     <GridViewColumn.CellTemplate>
  17.                         <DataTemplate>
  18.                             <!-- This is a custom control -->
  19.                             <l:HaDeviceDisplayer DataContext="{Binding .}" ></l:HaDeviceDisplayer>
  20.                         </DataTemplate>
  21.                     </GridViewColumn.CellTemplate>
  22.                 </GridViewColumn>
  23.             </GridView>
  24.         </ListView.View>
  25.     </ListView>
  26.        
  27. GridView gv = new GridView();
  28.             gv.AllowsColumnReorder = false;
  29.  
  30.             var hiddenStyle = new Style();
  31.             gv.ColumnHeaderContainerStyle = hiddenStyle;
  32.             gv.ColumnHeaderContainerStyle.Setters.Add(new Setter(FrameworkElement.VisibilityProperty, Visibility.Collapsed));
  33.  
  34.             ItemsPanelTemplate panelTemplate = new ItemsPanelTemplate();
  35.             var fact = new FrameworkElementFactory(typeof(WrapPanel));
  36.             fact.SetValue(WrapPanel.OrientationProperty, Orientation.Horizontal);
  37.             fact.SetValue(ScrollViewer.HorizontalScrollBarVisibilityProperty, ScrollBarVisibility.Hidden);
  38.  
  39.             var binding = new Binding() {
  40.                 RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(ScrollContentPresenter), 1),
  41.                 Path = new PropertyPath("(FrameworkElement.ActualWidth)")
  42.             };
  43.             fact.SetBinding(WrapPanel.WidthProperty, binding);
  44.  
  45.             panelTemplate.VisualTree = fact;
  46.             lbDevices.ItemsPanel = panelTemplate;
  47.  
  48.             GridViewColumn c1 = new GridViewColumn();
  49.             c1.CellTemplate = (DataTemplate)FindResource("DeviceDisplayer");
  50.             lbDevices.View = gv;