1

興味深いのですが、いくつかのコントロール(画像、2〜3個のテキストボックス)を1つの要素にグループ化してから、この要素のグループをリストボックスにプッシュできますか?ロシアのソーシャルネットワークVkontakteのニュースリーダーをWindwosPhone7にしようとしています。

各ニュースには、画像、テキスト、その他のメタデータがあります。したがって、このすべての情報を1つのコントロールにグループ化し、リストボックスで使用したいと思います。グリッド(画像と2つのテキストボックスがある)をリストボックスにプッシュしようとしましたが、XamlParseExceptionがスローされます。また、これらのテキストボックスと画像のコンテンツをコードから取得する必要があります。グリッドで使用できます

<Grid.Resources>
    <src:Customers x:Key="customers"/>
</Grid.Resources>
4

2 に答える 2

1

必要なものは次のとおりです。

  • ObservableCollection<T>モデルのコレクション(推奨)(Newsあなたの場合)。
  • ListBox
  • DataTemplate

例:

XAML:

<ListBox Name="ListBox1">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                ...
                <Image Source="{Binding ImagePropertyInModel}" ... />
                <TextBlock Text="{Binding TextPropertyInModel}" ... />
                ...
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

コードビハインド:

ListBox1.ItemsSource = <collection of models>;

<Grid>inの代わりに、 ( ) または既に持っている を<DataTemplate>使用できます。Custom ControlTemplated ControlUser Control

于 2012-11-28T18:56:43.790 に答える
0

使用するコントロールで UserControl を作成できます。ListBox を使用すると、次のようになります。

<ListBox ItemsSource="{Binding Path=YourItemsSource}">
    <ListBox.ItemTemplate>
      <DataTemplate>
        <my:MyUserControl DataContext="{Binding}"/>
      </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

ListBox の ItemsSource として、ニュースの ObservableCollection を使用できます。これによりDataContext="{Binding}"、UserControl のニュース プロパティにバインドできます。

<UserControl...>
    <Image Source="{Binding Path=photoAttachment}"/>
</UserControl>
于 2012-11-28T18:56:01.667 に答える