2016-04-13 28 views
0

Bunu list listemde biçimlendirilmiş xaml'de yaptım. Yani çalışır ama bu şimdi ben arkasındaki kodu yukarıdaki kodu uygulamak gerekiyordu ListView ItemsPanel'i xaml yerine codebehind olarak nasıl değiştireceğinize göz atın

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

uygulanacak sahip olduğunu bu yüzden bir mod karmaşık mantığı eklemek zorunda.

--- Martino Bordin için DÜZENLEME ---

ben yanlış anlamış anlat bana:

1a. Benim liste görünümü bir stil tanımlamış:

<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"]; 

ve hepsi benim gördüğüm ... hiçbir şey liste görünümü boş:

<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 ben yalnızca ihtiyacınız olduğunda arkasında benim kod ayarlayın .

Sonra Dediklerini sopa çalıştı ve bu yüzden yaptım:

1b. 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> 
    kodda
  1. :

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

ama yine hiçbir şey! Tüm boş nerede yanlış ben ?????

+0

Ne kod neyi mantık .can sen lütfen Bize neyle karşı karşıya kaldığını anlatıyor musun? – Rohit

+0

Burada önceki sorudaki her şeyi bulabilirsiniz: http://stackoverflow.com/questions/36579473/continuation-to-how-can-i-programmatically-create-a-listview-full-of-strings-co?noredirect = 1 # comment60762700_36579473 – Patrick

+0

Geçmişte şanssız denedim. – adminSoftDK

cevap

3

vermek, kaynaklar sözlükte şablonu koyun x:? O zaman kodda özelliklerini erişebilir, sizin liste görünümü isim:

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

Cevabınız için teşekkür ederim ama sorduğum şey bu değil. Açık olmayabilirdim. Tamam myListView.Items paneli ve diğerlerini ??? – Patrick

+0

Seni reddeden kişi (ler) ben değildim. Bu çözüm size ilginç görünüyor dedi. Ama tuhaf bir listview kısmından kaynaklara koyduğum kodu nasıl değiştirebilirim? Başka bir deyişle, genel olarak nasıl yapılır? – Patrick

+0

Bu bağlantıyı kontrol edin http://stackoverflow.com/questions/5705666/listview-define-itemspaneltemplate-in-resource-dictionary –