ほとんどのチュートリアルで、Windows Phone 7 用の Silverlight アプリケーションでのデータ バインディングについて、著者が使用し、監視可能なコレクションを使用しています。バインドした後にデータが変更されないことがわかりましたが、これは完全に必要ですか? リストだけを使用できないのはなぜですか?
各アプローチの長所と短所は何ですか? :)
また、次のコードが機能しないのはなぜですか? それは私にはそうであるように見えます。
C# コントリビューター クラス
public class Contributor
{
public string Name;
public string RSSUrl;
public Contributor(string name, string rssURL)
{
Name = name;
RSSUrl = rssURL;
}
}
C# アイテム バインディング
List<Contributor> people = new List<Contributor> { new Contributor("Danny", "www.dannybrown.com") };
contributorsListBox.ItemsSource = people;
XAML
<!--Panorama item two-->
<!--Use 'Orientation="Horizontal"' to enable a panel that lays out horizontally-->
<controls:PanoramaItem Header="contributors">
<!--Double line list with image placeholder and text wrapping-->
<ListBox x:Name="contributorsListBox" Margin="0,0,-12,0" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,0,0,17">
<!--Replace rectangle with image-->
<Rectangle Height="100" Width="100" Fill="#FFE5001b" Margin="12,0,9,0"/>
<StackPanel Width="311">
<TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" />
<TextBlock Text="{Binding RSSUrl}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</controls:PanoramaItem>
ご覧のとおり、各アイテムには赤い四角形が関連付けられています。リスト内の貢献者の数を変更するたびに、正しい量の赤い四角形が表示されるため、バインドが機能していると確信しています。
誰にもアイデアはありますか?
ありがとう、ダニー。