0

私は次のものを持っていますItemsControl

<ItemsControl x:Name="ListResult">
   <ItemsControl.ItemTemplate>
      <DataTemplate>
         <DockPanel>
            <Image Margin="10,0,0,0"
                   Source="{Binding Pic}"/>
            <TextBlock Text={Binding Info}/>
         </DockPanel>
      </DataTemplate>
   </ItemsControl.ItemTemplate>
</ItemsControl>

を にバインドしItemsControlます。ItemsSourceList<>

商品ごとに異なるマージンを入れることはできますか?

例えば:

ListResult[0].Margin="10,0,0,0";
ListResult[1].Margin="50,0,0,0";
ListResult[2].Margin="10,0,0,0";
ListResult[3].Margin="50,0,0,0";
4

2 に答える 2

3

行間を交互にする場合: from : WPF: ItemsControl の色を交互に切り替えますか? @biju コマンドを Margin に変更しました

<ItemsControl ItemsSource="{Binding ListResult}" AlternationCount="2">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <DockPanel>
                <Image x:Name="image" Source="{Binding Pic}"/>
                <TextBlock Text="{Binding Info}"/>
            </DockPanel>
            <DataTemplate.Triggers>
                <Trigger Property="ItemsControl.AlternationIndex" Value="0">
                    <Setter Property="Margin" Value="10,0,0,0" TargetName="image"/>
                </Trigger>
                <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                    <Setter Property="Margin" Value="50,0,0,0" TargetName="image"/>
                </Trigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
于 2012-12-16T11:55:17.590 に答える
-1

Listはい、次のように の要素にマージンを設定できます。

ListResult[0].Margin = new Thickness(10, 0, 0, 0); // etc... for rest of elements

そして、XAML コードは次のようにする必要があります。

<ItemsControl x:Name="ListResult">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <DockPanel>
                <Image Margin="{Binding Margin}"
                       Source="{Binding Pic}"/>
                <TextBlock Text={Binding Info}/>
           </DockPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
于 2012-12-16T11:48:54.330 に答える