私はXamarin.formsで新しく、リストから作成した複数のCheckBoxを使用しようとしています。Xamarin.formsでCheckBoxを使用するには?
私はCheckBoxがXamarin.formsに存在しないことを理解していますので、コントロールを作成するためにインターネット上で見つけたクラスを作成しました。
CheckBoxを作成しようとすると表示されません。私は、チェックボックスを作成するとき、これはコードです:
if (List1 != null && List1.Count > 0)
{
foreach (var c in List1)
{
CheckBox chk = new CheckBox();
chk.CheckedChanged += Chk_CheckedChanged;
chk.IsVisible = true;
chk.CheckBoxBackgroundColor = Color.Blue;
chk.TickColor = Color.Blue;
chk.WidthRequest = 12;
chk.HeightRequest = 12;
StackLayoutBody.Children.Add(chk);
}
}
そして、これはCheckBox.csのコードです:
using System;
using Xamarin.Forms;
namespace TECAndroid.Services
{
public class CheckBox : View
{
public static readonly BindableProperty CheckedProperty =
BindableProperty.Create(nameof(Checked), typeof(bool), typeof(CheckBox), false, BindingMode.TwoWay,
propertyChanged: (bindable, oldValue, newValue) =>
{
((CheckBox)bindable).CheckedChanged?.Invoke(bindable, new CheckedChangedEventArgs((bool)newValue));
});
public static readonly BindableProperty TickColorProperty =
BindableProperty.Create(nameof(TickColor), typeof(Color), ypeof(CheckBox), Color.Default, BindingMode.TwoWay);
public static readonly BindableProperty CheckBoxBackgroundColorProperty = BindableProperty.Create(nameof(CheckBoxBackgroundColor), typeof(Color), typeof(CheckBox), Color.Default, BindingMode.TwoWay);
public EventHandler<CheckedChangedEventArgs> CheckedChanged;
public Color TickColor
{
get => (Color)GetValue(TickColorProperty);
set => SetValue(TickColorProperty, value);
}
public Color CheckBoxBackgroundColor
{
get => (Color)GetValue(CheckBoxBackgroundColorProperty);
set => SetValue(CheckBoxBackgroundColorProperty, value);
}
public bool Checked
{
get => (bool)GetValue(CheckedProperty);
set
{
if (Checked != value) SetValue(CheckedProperty, value);
}
}
}
public class CheckedChangedEventArgs : EventArgs
{
public CheckedChangedEventArgs(bool value)
{
Checked = value;
}
public bool Checked { get; }
}
}
誰も私を助けてくださいことができます!
オンラインで見つかった元のクラスを投稿すると – Greggz
Xamlも同様に – Greggz
このクラスはチェックボックスのUIを実装していません。ネイティブレンダラーを作成するのはXamarin.Formsクラスです。通常、私はチェックボックスが必要なときにスイッチを使用しますが、スイッチが十分でない場合は、各プラットフォームでネイティブレンダラの実装を探すか、Xamarin.Formsのビューを使用してクロスプラットフォームの実装を探す必要があります。 –