0

FlipView に ListView があります

    <FlipView 
        x:Name="flipView"
        AutomationProperties.AutomationId="ItemsFlipView"
        AutomationProperties.Name="Item Details"
        TabIndex="1"
        Width="Auto"
        Grid.Row="2"
        Grid.Column="1"
        VerticalAlignment="Top"
        HorizontalAlignment="Center"
        ItemsSource="{Binding Source={StaticResource itemsViewSource}}" Padding="0" VirtualizingStackPanel.VirtualizationMode="Standard">
        <FlipView.ItemTemplate>
            <DataTemplate>
                <!--
                    UserControl chosen as the templated item because it supports visual state management
                    Loaded/unloaded events explicitly subscribe to view state updates from the page
                -->
                <UserControl Loaded="StartLayoutUpdates" Unloaded="StopLayoutUpdates">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <StackPanel Grid.Column="1" Orientation="Vertical" Margin="0,100,0,0">
                            <ListView x:Name="ListofOptions" Height="400" Width="280" 
                                      ItemsSource="{Binding QuestionOptions}" SelectedValue="{Binding Answer,Mode=TwoWay}"
                                      IsEnabled="{Binding IsEnabled,Mode=TwoWay}" >
                                <ListView.ItemTemplate>
                                    <DataTemplate>

                                        <StackPanel Orientation="Horizontal" >
                                            <StackPanel.Resources>
                                                <common:AltBackgroundConverter x:Key="BGConvertor" />
                                            </StackPanel.Resources>
                                            <StackPanel.Background>
                                                <SolidColorBrush  Color="{Binding IndexWithinParentCollection, Mode=OneWay, Converter={StaticResource BGConvertor}}"></SolidColorBrush>
                                            </StackPanel.Background>
                                            <TextBlock Text="{Binding OptionValue}"  />
                                      </StackPanel>
                                    </DataTemplate>
                                </ListView.ItemTemplate>
                            </ListView>
                        </StackPanel>
                    </Grid>
                </UserControl>
            </DataTemplate>
        </FlipView.ItemTemplate>
    </FlipView>

代替行の背景を変更するための ListView の値 conventor を記述します。ここにConventorのコードがあります

  public class AltBackgroundConverter : IValueConverter
  {
      public object Convert(object value, Type targetType, object parameter, string language)
    {
        if (!(value is int)) return null;
        int index = (int)value;

        if (index % 2 == 0)
            return Colors.White;
        else
            return Colors.LightGray;
    }

    // No need to implement converting back on a one-way binding
    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}

リストボックスが FlipView の外にある場合、すべて問題ありませんが、ListView が FlipView にある場合、Conventor は実行されません。私にアドバイスしてください。

4

1 に答える 1

0

VS2012 で新しい Split XAML プロジェクトを作成し、そこにコンバーターを追加して使用しましListViewListViewが、FlipView. ルート バインディング オブジェクトが変更され、バインディングの 1 つが期待どおりに解決されないために発生するバインディングの問題であると推測しています。Resourcesタグを上のレベルに移動しようとしましたFlipeViewか?

PSこれはコメントのようなものですが、コメントに対する評判はありません!

于 2013-08-11T10:04:41.867 に答える