我正在創建一個通用的應用程序,需要列表框中的列表框。第一個列表框顯示一個包含消息的列表。有些信息附有照片,我必須添加爲另一個列表。我可以用我的數據填充第一個列表框,但我無法設置第二個列表框。第一個Listbox我通過它的x:Name來設置ItemSource。第二個我不能以這種方式訪問。我相信我對綁定有一些思考問題。c#windows應用程序列表框內的列表框綁定問題(通用應用程序手機+ pc)
這裏的XAML:
<ListBox x:Name="MessageHistory" Background="#143b8a" Margin="0,0,0,101">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
</Grid.RowDefinitions>
<TextBlock Text="{Binding Inbox}" Margin="0,0,50,0" HorizontalAlignment="Left" TextWrapping="Wrap" FontSize="24" Foreground="WhiteSmoke" TextAlignment="Left"/>
<TextBlock Text="{Binding Outbox}" Margin="80,0,0,0" HorizontalAlignment="Right" TextWrapping="Wrap" FontSize="24" Foreground="Gray" TextAlignment="Right"/>
<!-- start of list for message photo thumbs -->
<ListBox ScrollViewer.HorizontalScrollBarVisibility="Auto"
x:Name="FirstThumbs" />
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Image Source="{Binding Thumb,Mode=OneWay}" Height="90" Width="90" Stretch="UniformToFill"/>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
</Grid.RowDefinitions>
</Grid>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<!-- end of list for message photo thumbs -->
</Grid>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
然後我有兩個班。首先是MesHistory.cs:
public class MesHistory
{
public string Inbox { get; set; }
public string Outbox { get; set; }
}
第二個ThumbView.cs:
public class ThumbView
{
public string Thumb { get; set; }
}
第一/主列表我填充方式:
List<MesHistory> messageslist = new List<MesHistory>();
...foreach...{
MesHistory newMessage = new MesHistory();
newMessage.Inbox = finalmessagetext.InnerText;
messageslist.Add(newMessage);
}
,然後設置的ItemsSource這樣:
MessageHistory.ItemsSource = messageslist;
List<ThumbView> newThumblist = new List<ThumbView>();
...foreach...{
ThumbView newThumb = new ThumbView();
newThumb.Thumb = thumbaddress.Attributes["src"].Value).ToString();
newThumblist.Add(newThumb);
}
,然後設置的ItemsSource這樣不工作:
FirstThumbs.ItemsSource = newThumblist;
VS告訴我:「當我試圖同爲內部的ListBox我無法通過名稱設置的ItemsSource訪問FirstThumbs「並不存在於當前的情況下。
我如何訪問它並將數據綁定到該列表?此外,我想有可能的話那整個列表中進行選擇的事件......