2

FlipViewをタイマーでアイテムを回転させたいのですが。タイマーは簡単ですが、FlipViewに次のアイテムをコードで表示させる(そしてループさせる)方法はありますか?

この質問の答えFlipViewがSelectedItemを無視するのはなぜ機能しないようです。

4

5 に答える 5

2

SelectedItemプロパティをスキップし、代わりにSelectedIndexを使用してください。開始するには0に設定し、リスト内のアイテム数から1を引いた値に達するまで1ずつ増やしてから、ゼロに戻します。これをテストしたところ、XAMLで宣言された、またはItemsSourceプロパティにバインドされたフリップビューアイテムで機能します。

于 2012-08-23T13:49:14.027 に答える
2

プロパティが変更されたことをUIに通知する場合に機能します。ViewModelはINotifyPropertyChangedを実装する必要があり、プロパティはPropertyChangedイベントを発生させる必要があります

public class ViewModel : INotifyPropertyChanged
{
    private object _selectedItem;

    public object SelectedItem
    {
        get { return _selectedItem; }
        set 
        { 
            _selectedItem = value; 
            OnPropertyChanged("SelectedItem"); 
        }
    }
}

サンプルアプリに付属しているBindableBaseクラスを使用することもできます

public class ViewModel : BindableBase
{
    private object _selectedItem;

    public object SelectedItem
    {
        get { return this._selectedItem; }
        set { this.SetProperty(ref this._selectedItem, value); }
    }
}
于 2012-08-23T13:55:40.447 に答える
2

これは、状況によっては役立つ場合があります

flipView.SelectedIndex = -1;
flipView.SelectedIndex = desiredIndex;

また

flipView.SelectedItem = null;
flipView.SelectedItem = flipViewItem;
于 2014-06-08T08:33:39.047 に答える
0

何らかの理由で、これらのFlipViewにSelectedIndexとSelectedItemの両方を設定する必要がありました。奇妙な振る舞い:/(おそらく、RPからRTMへの変更です-私はRTMを使用しています。)

于 2012-08-24T12:57:06.943 に答える
0

Windows 10 VS2017の場合次のXMLコードの場合:

<FlipView Grid.Row="1" x:Name="fvMainControls">
    <FlipViewItem>
        <CheckBox Content="My Overlay" Height="21" Canvas.Left="191" Canvas.Top="164" Width="131"/>
    </FlipViewItem>
    <FlipViewItem>
        <Rectangle HorizontalAlignment="Left" Height="387" Margin="54,140,0,0" Stroke="Black" VerticalAlignment="Top" Width="206" Fill="#FF6A1717" FocusVisualPrimaryBrush="#FFA46767"/>
    </FlipViewItem>
</FlipView>

これは機能します:

fvMainControls.SelectedIndex = 0          
fvMainControls.SelectedIndex = 1

fvMainControls.SelectedItem = fvMainControls.Items(0)
fvMainControls.SelectedIndex = fvMainControls.Items(1)

動作します。ラヴィ

于 2017-04-12T13:31:51.787 に答える