1

Windows8アプリケーションのリストビューXAMLでメンバーAlternationCountが見つからないのはなぜですか?

よろしくお願いします

4

1 に答える 1

1

これを行うには、ItemContainerGeneratorプロパティを使用し、そのメソッドContainerFromItemIndexFromContainerメソッドをチェーンしてアイテムのインデックスを取得してから、コンバーターを使用してインデックスから背景色を取得します。

public class Item : BindableBase
{
    public ItemsControl itemsControl {get;set;}

    private string name;
    public string Name
    {
        get{
            return name;
        }
        set
        {
            name = value;
            OnPropertyChanged();
        }
    }

    public int Index
    {
        get
        {
            return itemsControl.ItemContainerGenerator.IndexFromContainer(
                itemsControl.ItemContainerGenerator.ContainerFromItem(this)
            );
        }
    }
}

public sealed partial class ItemContainerGeneratorTest : App1.Common.LayoutAwarePage
{
...
    public ObservableCollection<Item> test 
    {
        get
        {
            var test = new ObservableCollection<Item>();
            test.Add(new Item() { Name = "Index for item 1: ", itemsControl = ItemsControlControl });
            test.Add(new Item() { Name = "Index for item 2: ", itemsControl = ItemsControlControl });
            test.Add(new Item() { Name = "Index for item 3: ", itemsControl = ItemsControlControl });
            test.Add(new Item() { Name = "Index for item 4: ", itemsControl = ItemsControlControl });
            test.Add(new Item() { Name = "Index for item 5: ", itemsControl = ItemsControlControl });
            test.Add(new Item() { Name = "Index for item 6: ", itemsControl = ItemsControlControl });
            return test;
        }
    }
...
}

<ItemsControl x:Name="ItemsControlControl" ItemsSource="{Binding ElementName=pageRoot, Path=test}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}"/>
                <TextBlock Text="{Binding Index}"/>
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

この例現在、コレクションへの変更を処理しないことに注意してください(つまり、コレクションが変更されたときにOnPropertyChanged呼び出されませんIndex)。

于 2012-10-10T00:47:23.280 に答える