2017-06-09 61 views
0

我試圖將圖像列表(列表)綁定到StackPanel,我試圖通過使用< Separator>但遺憾的是它不工作。任何人都知道爲什麼? (我有點新秀上wpf..so SRY)綁定圖像列表

我的代碼: 代碼背後:

  List<Image> v2 = new List<Image>(); 
     for (int i = 0; i < 10; i++) 
     { 
      Image v2image = new Image(); 
      v2image.BeginInit(); 

      v2image.Source = new BitmapImage(new Uri("http://static.lolskill.net/img/champions/64/xayah.png")); 
      v2image.Width = 40; 
      v2image.Height = 40; 
      v2.Add(v2image); 
     } 

     BlueTeam.ItemsSource = v2; 

的XAML:

<Window x:Class="FML.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:FML" 
    mc:Ignorable="d" 
    Title="MainWindow" Height="525.885" Width="809.974"> 
<Grid> 
    <ItemsControl Grid.Column="0" x:Name="BlueTeam"> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <StackPanel Orientation="Horizontal" > 

       </StackPanel> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Vertical" > 
        <Image Source="{Binding v2image.Source}"></Image> 
        <Separator Opacity="0" Height="20" Width="20"/> 
       </StackPanel> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</Grid> 

泰對我的幫助: D btw:圖像非常小。他們不是40寬\高

編輯: 這是它如何工作的:

這是它是如何工作http://imgur.com/a/bZbLf(當我使用一個類誰只圖像它的工作原理):http://imgur.com/a/uptlo

回答

0

你不應該有一個List<Image>,但List<ImageSource>代替:

var v2 = new List<ImageSource>(); 

for (int i = 0; i < 10; i++) 
{ 
    v2.Add(new BitmapImage(
     new Uri("http://static.lolskill.net/img/champions/64/xayah.png"))); 
} 

BlueTeam.ItemsSource = v2; 

你會然後在ItemTemplate有一個固定大小的聲明Image控件,並將其綁定可怕ctly的收集裝置,由Source="{Binding}"

<ItemsControl.ItemTemplate> 
    <DataTemplate> 
     <Image Source="{Binding}" Width="40" Height="40" Margin="10"/> 
    </DataTemplate> 
</ItemsControl.ItemTemplate> 

不知道什麼是分隔符是應該做的。在上面的例子中,我簡單地設置了圖像的Margin屬性。