New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add DataTemplate extensions to allow typesafe binding just like BindableObject #232
Conversation
After internal debate we have opted not to include this due to its usage of Expression which expands out quite poorly in iOS AOT land resulting in bloating of binary sizes. |
Can you elaborate a bit on why BindableObject's use of the Expression does not result in bloated binaries but this change would? I suppose I could add these extension methods in all of my apps to avoid using simple binding strings, but I was hoping to get this added to Forms so everybody can avoid simple strings which are not refactor safe. |
* GH-221: Add iOS SecAccessible properties (#223) * Address #221, use AfterFirstUnlockThisDeviceOnly to match other platforms. Although allow a platform specific override to set accessible state. * Add tests * Added iOS specific prop to set SecAccessible * Default to AfterFirstUnlock on iOS SecureStorage * A few fixes for the release. (#228) * Setting the correct flags for Chrome Tabs. Fixes #225 * Make sure that there is data to decrypt before starting. Fixes #226 * Fixes for TTS. Fixes #227 * A bit of the fixes for emails on iOS. Relates to #224 * Update the email bit for iOS #224 * Cleaning up the code #224 * Make sure to set the email properties. Fixes #229 * Update SDK Extras This fixes a lot of references that were required on android that aren't. * Update Readme with Installation information. (#237) * Update Readme with Installation information. * Update README.md * Update README.md * Adding the initial work to get Tizen started. #23 * Revert "Adding the initial work to get Tizen started. #23" This reverts commit 58b6041. * Update the docs with the latest APIs (#233) Add docs for SecAccessible * GH-245: Add Orientation Sensor (#249) * Add Orientation Sensor * Add Orientation Sensor * Remove .csproj clutter * "orientationsensor" --> "orientation sensor" or just "orientation" * GH-192: Added DateTime to Preferences (#232) * Added DateTime to preferences. Fixes #192 - also properly using overloads * Added some unit tests * Added the docs for the new Preferences APIs * Update Readme with Device Display Information Added link to Current Features for Device Display Information * Fixes #258 and Fixes #255 (#259) * Fixes #258 * put vectors nuget everywhere. * NuGet is broken - https://developercommunity.visualstudio.com/content/problem/232996/warning-nu1603-runtimenativesystemiocompression-41.html * The NuGet doesn't add the assembly references from the GAC * We need to use a later version of the iOS SDK * Fix typo (#274) * Fix up null checks when getting lask known location. * Additional Null checks * GH-240 Add IsMainThread detection API (#277) * Add IsMainThread detection API * Add platform tests for main thread * Update docs and add more platform tests * iOS secure storage simulator tests (#247) (#278) * iOS secure storage simulator tests (#247) * Remove line that skips test on virtual devices * Adding keychain-access-groups in Entitlements.plist * Setting CodeSign entitlements for Debug configuration * Making same entitlement.plist changes for iOS sample * Removing specific code sign key * Removing physical device trait for iOS SecureStorageTests * Update DeviceTests.iOS.csproj * Update Samples.iOS.csproj * Add configs for codesign on release * Fixes #181 Allowing setting of calibration for heading. (#282) * GH-254 Update Support Packages, Forms, and Reference Vectors (#279) * Update Support Packages, Forms, and Reference Vectors * Bump targetsdk * Fix android build :) * Fix build
Description of Change
Allow typesafe binding on DataTemplate just like we have for BindableObject. This allows better support for refactoring such that when a bound property name changes, it will be found in the lambda expressions and be updated too.
My first attempt added these extension methods to DataTemplateExtensions.cs. Then I noticed that there was already an extension method in TemplateExtensions.cs. Therefore, I moved my changes to TemplateExtensions.cs to better match what was already there.
API Changes
Added:
PR Checklist