none
Xamarin CarouselView 快速導覽 RRS feed

  • 問題

  • 使用CarouselView時,想做出下圖的功能,可以透過按鈕達成跳頁,且當前頁的按鈕風格不同

    因為項目數量的關係所以下方按鈕也必須以ItemsView的方式產生

    跳頁的方式我是使用Command實作,

    按鈕風格變化以DataTrigger的方式,Button的DataTrigger的Value設定的值必須是依次是0~頁數-1

    只想到以Binding的方式,但是Value無法使用Binding

    後續看到WPF有MultiBinding可以Binging多個值進而在Converter中比較兩個值,但是Xamarin沒有MultiBinding

    Q1.想請教DataTrigger的Value該用甚麼方式達成想要的功能?或是Xamarin如何使用MultiBinding?




    • 已編輯 StuBoo 2019年12月10日 上午 06:27
    2019年12月9日 上午 07:02

解答

  • 分享一下最終解決方案

    1.C#程式碼建置Button

    --------------

    2.Keboo/Xamarin.Forms.Proxy的MultiBinding (https://github.com/Keboo/Xamarin.Forms.Proxy)

    原本是DataTrigger的Binding值與Value值比對,因Value無法使用Binding

    變成Binding使用MultiBinding 再將Binding的多個值透過Converter運算後輸出成一個值 , Value就可以只需要實值

    <DataTrigger TargetType="Button"
                 Value="true">
            <DataTrigger.Binding>
                 <proxy:MultiBinding Converter="{StaticResource numConverter}">
                         <Binding Source="{x:Reference caruselView}" Path="Position"/>
                         <Binding Path="Index"/>
                 </proxy:MultiBinding>
            </DataTrigger.Binding>
            <Setter Property="BackgroundColor" Value="#551133FF"/>
    </DataTrigger>


    • 已標示為解答 StuBoo 2019年12月11日 上午 09:41
    2019年12月11日 上午 09:41