for simplicity i have simplified this as much as possible.
I have a rad list with a number of different custom ListViewTemplateCell.View s one includes a custom version of the rad picker. I have created a bindable property (callled test below) which fires the first time the control is created but never fires after the bound value is updated (called AField for simplicity). I am calling OnPropertyChanged for this field from the rows binding which I can confirm is working
if i take this all and put it into another custom control (based on radentry) on the same row it is working fine. Is this something that can be achieved with the picker control or will it not pick up properties changed like this?
////////////////////
<controls:DSRadPicker Grid.Column="0" Grid.Row="1" Test ="{Binding AField, Mode=OneWay}" DSSelectionChanged="DSRadPicker_SelectionChanged" />
public partial class DSRadPicker : RadListPicker
{
public static readonly BindableProperty DSBindingProperty = BindableProperty.Create(
nameof(DSBinding),
typeof(DSFormPickerListLine2),
typeof(DSRadPicker),
defaultValue: null,
defaultBindingMode: BindingMode.TwoWay,
propertyChanged: BindingPropertyChanged
);
public static readonly BindableProperty TestProperty =
BindableProperty.CreateAttached(
nameof(Test),
typeof(string),
typeof(DSRadPicker),
"",
BindingMode.TwoWay,
null,
propertyChanged: HandleTextChanged);
public string Test
{
get { return (string)GetValue(TestProperty); }
set { SetValue(TestProperty, value); }
}
static void HandleTextChanged(BindableObject bindable, object oldValue, object newValue)
{
}
}