2016-04-13 8 views
0

Ich hatte dies in meinem XAML, das meine ListView formatiert. Das funktioniert aber ich habe einen Modus komplizierte Logik hinzufügen, so dass dieseListView, wie ItemsPanel in Codebehind anstatt in XAML geändert werden

aufgebracht werden muss
<ListView.ItemsPanel> 
    <ItemsPanelTemplate> 
     <WrapPanel Orientation = "Horizontal" Width = "250" Background = "{x:Null}" VerticalAlignment = "Top"></WrapPanel> 
    </ItemsPanelTemplate> 
</ListView.ItemsPanel> 

so dass ich jetzt brauchen würde den Code in Code-behind anzuwenden.

--- EDIT für Martino Bordin ---

Bitte sagen Sie mir, was ich falsch verstanden:

1a. Ich habe einen Stil in meinem Listview definiert:

<ListView x:Name="lvPPtab1" Grid.Row="2" FontSize="12" Background="{x:Null}" BorderBrush="Gainsboro" BorderThickness="5" Margin="10,12.2,10,8.4" VerticalAlignment="Stretch" PreviewMouseLeftButtonDown="ListBox_PreviewMouseLeftButtonDown" SelectionChanged="ListView_SelectionChanged"> 
    <ListView.Resources> 
     <Style x:Key="ListViewStyle" TargetType="ListView"> 
      <Setter Property="ItemsPanel"> 
       <Setter.Value> 
        <ItemsPanelTemplate > 
         <WrapPanel Orientation="Horizontal" VerticalAlignment="Top"/> 
        </ItemsPanelTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </ListView.Resources> 

    <ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="Background" Value="Blue"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ListView.ItemContainerStyle> 
</ListView> 

2a.I es hinter nur in meinem Code festgelegt, wenn ich brauche es:

<ListView x:Name="lvPPtab1" Grid.Row="2" FontSize="12" Background="{x:Null}" BorderBrush="Gainsboro" BorderThickness="5" Margin="10,12.2,10,8.4" VerticalAlignment="Stretch" PreviewMouseLeftButtonDown="ListBox_PreviewMouseLeftButtonDown" SelectionChanged="ListView_SelectionChanged"> 
    <ListView.Resources> 
     <Style x:Key="ListViewStyle" TargetType="ListView"> 
      <Setter Property="ItemsPanel"> 
       <Setter.Value> 
        <ItemsPanelTemplate > 
         <WrapPanel Orientation="Horizontal" VerticalAlignment="Top"/> 
        </ItemsPanelTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </ListView.Resources> 

    <ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="Background" Value="Blue"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ListView.ItemContainerStyle> 
</ListView> 


lvPPtab1.Style = (Style)this.Resources["ListViewStyle"]; 

und alles, was ich sehe ist ... nichts leer listview .

Dann habe ich versucht, zu bleiben, was Sie gesagt haben und so habe ich das:

1b. in der XAML

<ListView x:Name="lvPPtab1" Grid.Row="2" FontSize="12" Background="{x:Null}" BorderBrush="Gainsboro" BorderThickness="5" Margin="10,12.2,10,8.4" VerticalAlignment="Stretch" PreviewMouseLeftButtonDown="ListBox_PreviewMouseLeftButtonDown" SelectionChanged="ListView_SelectionChanged"> 
<ListView.Resources> 
    <ItemsPanelTemplate x:Key="ListViewStyle" > 
     <WrapPanel Orientation="Horizontal" VerticalAlignment="Top"></WrapPanel> 
    </ItemsPanelTemplate> 
</ListView.Resources> 
<ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="Background" Value="Blue"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ListView.ItemContainerStyle> 
</ListView> 
  1. im Code hinter:

    lvPPtab1.ItemsPanel = (Itemspaneltemplate) this.Resources [ "ListViewStyle"];

aber wieder nichts! Alles leer wo liege ich falsch ?????

+0

Welcher Code welche Logik .can Sie bitte Sag uns, was willst du erreichen? – Rohit

+0

Hier finden Sie alles in meiner vorherigen Frage: http://stackoverflow.com/questions/36579473/continuation-to-how-can-i-programmatically-create-a-listview-full-of-strings-co?noredirect = 1 # comment60762700_36579473 – Patrick

+0

Ich habe es in der Vergangenheit ohne Glück versucht. – adminSoftDK

Antwort

3

Legen Sie die Vorlage in der Ressourcen-Wörterbuch, geben ein x: Name des zu Ihrem Listview, dann können Sie seine Eigenschaften im Code zugreifen hinter:?

myListView.ItemsPanel 
myListView.ItemsPanel = (ItemsPanelTemplate)this.Resources["MyListViewPanelTemplate"]; 
+0

Vielen Dank für Ihre Antwort, aber das ist nicht, was ich frage. Ich wäre vielleicht nicht klar gewesen. Ok myListView.Items Panel und dann der Rest ??? – Patrick

+0

Ich bin nicht derjenige (n) gewesen, der dich herabgestuft hat. Das heißt, Ihre Lösung sieht interessant aus. Aber wie verschiebe ich den obigen Code aus dem eigentümlichen Listview-Teil in Ressourcen? Mit anderen Worten, wie kann man es allgemein machen? – Patrick

+0

Überprüfen Sie diesen Link http://stackoverflow.com/questions/5705666/listview-define-itemspaneltemplate-in-resource-dictionary –