Hi Xamarin/MvvmCross devs,Изменения в привязках MvvmCross
Это всего лишь вопрос из любопытства. В одном из приложений, которые я разрабатываю, какое-то поведение изменилось. В частности, на iOS при привязке значения UISwitch «On» к логическому в ViewModel. Геттер на свойстве срабатывает, когда применяется привязка, а также установщик при переключении переключателя, но пользовательский интерфейс его не отражает. Заставлять меня, чтобы перейти от просто
var set = this.CreateBindingSet<SettingsView, SettingsViewModel>();
set.Bind(PushNotificationSwitch).For(s => s.On)
.To(vm => vm.ReceivePushNotifications);
set.Apply();
Для того, чтобы добавить ниже, что после (получить интерфейс переключателя, чтобы отразить значение)
var settingsViewModel = ((SettingsViewModel)ViewModel);
PushNotificationSwitch.On = settingsViewModel.ReceivePushNotifications;
Я оставил связывание, а также новый код, отражающий состояние пользовательского интерфейса, потому что в дополнение к пользовательскому интерфейсу, отражающему только правильное состояние, я также хочу, чтобы он менял состояние в моих настройках. Сервис, когда пользователь меняет его.
Недавно я обновился через Xamarin Studio на Mac, а версия iOS Xam Version: 10.0.0.6. К сожалению, я не проверял, какую версию я обновил, но я всегда обновляюсь, как только вижу, что есть один доступный, так что это должна быть предыдущая стабильная версия.
Мои вопросы:
- ли какой-либо из вас испытывали подобные проблемы, где переплеты изменены таким образом?
- Поскольку привязка Android все еще работает нормально, считаете ли вы, что это проблема в MvvmCross или iOS Xamarin Changes
- Какие-либо предположения относительно того, что может быть причиной этого? И другие части, которые, по вашему мнению, могут повлиять на меня, поэтому мне не придется идти на поиски ошибок, если их не существует. Команды, текстовые и пользовательские привязки управления отлично работают (насколько я проверял)
Если этот вопрос лучше подходит где-то в другом месте, пожалуйста, дайте мне знать, мне просто интересно это поведение.
Благодаря
Означает ли это поведение как для сборки отладки, так и для выпуска или только для одного из них? Это может быть компоновщик, который снимает код. У вас есть код в файле LinkerPleaseInclude для коммутаторов? – Cheesebaron
@Cheesebaron Это происходит как для отладки, так и для выпуска, и у меня нет кода для переключателей в моем файле LinkerPleaseInclude. –
Можете ли вы попробовать добавить: 'public void Include (UISwitch sw) { sw.On =! Sw.On; sw.ValueChanged + = (отправитель, args) => {sw.On = false; }; } ' – Cheesebaron