C1Calendar コントロールのデフォルトの動作をカスタマイズして、特定の日付を選択することもできます。たとえば、異なる週の 2 つの日付をタップするだけで、平日だけを選択できるようにしたいとします。それには、getSelectionChanging イベントをサブスクライブし、ハンドラに選択条件を適用するだけです。
次の図は、異なる週の 2 つの日付をタップすると、平日だけが選択され、週末が選択解除される Xamarin Calendar です。
次のコード例は、C# で選択範囲をカスタマイズする方法を示します。次のコード例では、「クイックスタート」セクションで作成したサンプルを使用します。
Java |
コードのコピー
|
---|---|
using Android.App; using Android.Widget; using Android.OS; using C1.Android.Calendar; using System; using Android.Views; |
C# |
コードのコピー
|
---|---|
public class MainActivity : Activity { C1Calendar calendar; protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // 「メイン」レイアウトリソースからビューを設定する SetContentView(Resource.Layout.Main); calendar = FindViewById<C1Calendar>(Resource.Id.calendar); calendar.SelectionChanging += OnSelectionChanging; } private void OnSelectionChanging(object sender, CalendarSelectionChangingEventArgs e) { foreach (var date in e.SelectedDates.ToArray()) { if (date.DayOfWeek == DayOfWeek.Saturday || date.DayOfWeek == DayOfWeek.Sunday) e.SelectedDates.Remove(date); } } public override bool OnOptionsItemSelected(IMenuItem item) { if (item.ItemId == global::Android.Resource.Id.Home) { Finish(); return true; } else { return base.OnOptionsItemSelected(item); } } |