我設法讓自定義列表框綁定:Silverlight的列表框用帆布和圖像
<ListBox x:Name="ImageList" ItemsSource="{Binding ImageControls}" Width="256" Height="256" Margin="256,0,0,0">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemContainerStyle>
<Style>
<Setter Property="Canvas.Top" Value="{Binding Top}" />
<Setter Property="Canvas.Left" Value="{Binding Left}" />
<Setter Property="ListBoxItem.Width" Value="128" />
<Setter Property="ListBoxItem.Height" Value="128" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<Image Source="{Binding Source}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
現在我有問題,結合... ImageList.ItemsSource
總是空。
我擁有財產性
public ObservableCollection<ImageControl> ImageControls;
它包含的
public class ImageControl
{
public WriteableBitmap Source { get; set; }
public int Top { get; set; }
public int Left { get; set; }
}
我需要看到somethink這樣的集合:
在結果,從代碼添加列表中的元素後,我想要接收像(帶有來源的圖像)的項目:
<ListBoxItem Canvas.Left="0" Canvas.Top="0" Width="128" Height="128">
<Image x:Name="Image1"/>
</ListBoxItem>
<ListBoxItem Canvas.Left="128" Canvas.Top="0" Width="128" Height="128">
<Image x:Name="Image2"/>
</ListBoxItem>
<ListBoxItem Canvas.Left="0" Canvas.Top="128" Width="128" Height="128">
<Image x:Name="Image3"/>
</ListBoxItem>
<ListBoxItem Canvas.Left="128" Canvas.Top="128" Width="128" Height="128">
<Image x:Name="Image4" />
</ListBoxItem>
在代碼中,我添加了相似圖片:
ImageControls.Add(new ImageControl { Source = _bmp, Left = 0, Top = 0});
我該怎麼辦了? 謝謝!
「ImageList.ItemsSource始終爲空」 - 什麼是ListBox的DataContext?它必須是具有ImageControls屬性的類。你什麼時候初始化ImageControls?在InitializeComponent之前還是之後?如果以後你發射了一個Propertychanged事件? –