簡體   English   中英

無法將信息連接到列表框,而WP7中還有一個列表框

[英]Cant connect info to listbox whis is in one more listbox in WP7

我有一個班級新聞

public class News : ObservableCollection<New>
{
    public News()
        : base()
    {

    }
}

一類新

public class New : INotifyPropertyChanged
{
         public PhotoAttachments Photo
    {
        get
        { 
            return photoAttachments;
        }
        set
        {
            photoAttachments = value;
            OnPropertyChanged("Photo");
        }
    }
   // some fields such as date, text, id, sourceName etc
 public event PropertyChangedEventHandler PropertyChanged;
  protected void OnPropertyChanged(string info)
{//realisation of method}
 public PhotoAttachments photoAttachments = new PhotoAttachments(); // it is a collection, such as News, but it contains objects of class PhotoAttachment, which have property with string url to photo
}

InitializeComponent(); 我寫this.listBox.ItemsSource = NewsList; 因此,有一個包含類New的對象的列表框。 在這些列表框中,我創建了另一個列表框,並嘗試通過PhotoAttachments集合填充它。 這里我有一個問題,帶有照片的列表框不顯示照片(但它們存在)。 這是XAML:

// I can select different      <local:NewsTemplateSelector.Photos>
//style of listbox               <DataTemplate>
//using  NewsTemplateSelector     <Border BorderBrush="Red" BorderThickness="2"  Width="400" Height="300" Margin="10">
                                        <StackPanel Orientation="Horizontal" Width="400" Height="300">
                                            <Image Source="{Binding SourceImage}" Height="75" Width="75" Margin="0,-225,0,0" />
                                            <Canvas Width="400">
                                                <TextBlock Text="{Binding SourceName}" Foreground="Black" FontSize="25" TextWrapping="Wrap" Height="65" Width="326" d:LayoutOverrides="VerticalAlignment, Height" />
                                                <ListBox Name="photoListbox" ItemsSource="{Binding Photo}"  Height="229" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="326" Canvas.Top="69">
                                                    <Image  Source="{Binding Big}" Height="200" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="400" />
                                                </ListBox>
                                            </Canvas>
                                        </StackPanel>
                                    </Border>
                                </DataTemplate>
                            </local:NewsTemplateSelector.Photos>

攝影附件類:

    public class PhotoAttachment : INotifyPropertyChanged
{
    private string ownerId;
    public string OwnerId { get { return ownerId; } set { ownerId = value; OnPropertyChanged("OwnerId"); } }
    private string small;
    public string Small { get { return small; } set { small = value; OnPropertyChanged("Small"); } }
    private string big;
    public string Big { get { return big; } set { big = value; OnPropertyChanged("Big"); } }
    public PhotoAttachment(string ownId, string small, string big)
    {
        ownerId = ownId;
        this.small = small;
        this.big = big;
    }
    public PhotoAttachment() { }
    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string info)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(info));
        }
    }

}

剛意識到您的photoListView的XAML缺少ItemTemplate

遵循以下原則可以解決問題:

        <ListBox.ItemTemplate>
            <DataTemplate>
                <Image  Source="{Binding Big}" Height="200" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="400" />
            </DataTemplate>
        </ListBox.ItemTemplate>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM