カスタム コントロールを作成していて、bindable property
. これらのプロパティに基づいて子をセットアップしたかったのです。このシナリオを処理する正しい方法は何ですか? ベース コントロールまたはフックできるイベントでオーバーライドする意味のあるものを探してみました。
たとえば、 andをGrid
設定したときにa の列/行定義を作成したいColumnCount
RowCount
XAML
public class HeatMap: Grid
{
public HeatMap()
{
// Where should I move these?
Enumerable.Range(1, RowCount)
.ToList()
.ForEach(x => RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }));
Enumerable.Range(1, ColumnCount)
.ToList()
.ForEach(x => ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }));
}
public static readonly BindableProperty RowCountProperty =
BindableProperty.Create<HeatMap, int>(p => p.RowCount, 0);
public int RowCount
{
get { return (int)GetValue(RowCountProperty); }
set { SetValue(RowCountProperty, value); }
}
public static readonly BindableProperty ColumnCountProperty =
BindableProperty.Create<HeatMap, int>(p => p.ColumnCount, 0);
public int ColumnCount
{
get { return (int)GetValue(ColumnCountProperty); }
set { SetValue(ColumnCountProperty, value); }
}
}