UpdateSourceTrigger in WinRT

Wie met Silverlight of met WPF heeft gewerkt en MVVM regelmatig toepast zal ongetwijfeld the UpdateSourceTrigger wel is hebben aangepast. Vooral bij bindings naar een geselecteerd item is het erg handig en vaak noodzakelijk om de ingevoerde tekst bij het juiste item terug te krijgen. Helaas is de UpdateSourceTrigger weg gehaald bij WinRT.

De andere oplossing om de update te forceren van via GetBindingExpression() maar ook die is helaas niet aanwezig.

Een andere oplossing zou zijn om een eventhandler op bv TextChanged van een TextBox te implementeren. Maar ben hier niet zo fan van daar je nu buiten de binding om gaat werken, en waarom zou je dan uberhaupt nog bindings gebruiken?

 

ik heb zelf een wrapper control gemaakt:

public class BindableTextBox : TextBox
    {
        public string BindableText
        {
            get { return (string)GetValue(BindableTextProperty); }
            set { SetValue(BindableTextProperty, value); }
        }

        // Using a DependencyProperty as the backing store for BindableText.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty BindableTextProperty =
            DependencyProperty.Register("BindableText", typeof(string), typeof(BindableTextBox), new PropertyMetadata("", OnBindableTextChanged));

        private static void OnBindableTextChanged(DependencyObject sender, DependencyPropertyChangedEventArgs eventArgs)
        {
            ((BindableTextBox)sender).OnBindableTextChanged((string)eventArgs.OldValue, (string)eventArgs.NewValue);
        }

        public BindableTextBox()
        {
            TextChanged += BindableTextBox_TextChanged;
        }

        private void OnBindableTextChanged(string oldValue, string newValue)
        {
            Text = newValue ? ? string.Empty; // null is not allowed as value!
        }

        private void BindableTextBox_TextChanged(object sender, TextChangedEventArgs e)
        {
            BindableText = Text;
        }    
    }

Nu kan je tegen de nieuwe property BindableText aanbinden en word ook direct geupdate.

  •   RT @VisualStudio: In this episode, we're joined by Kasey Uhlenhuth (@kuhlenhuth) who shows some of the refactoring features available in Vi…
  •   @VSTS problems with build queues atm?
  •   RT @donasarkar: Hi #WindowsInsiders we have released Build 17713 to the Fast ring! This build has several new features we think IT Pros wil…
  •   RT @maryjofoley: ICYMI, another Windows 10 on ARM PC is available: Lenovo Miix 630 ARM-based 2-in-1 Windows tablet goes on sale for $900 ht…
  •   the moment you have a meeting and skype for business protocol handller is lost again ...
  •   @LocalJoost Surface Go vanaf 27 augustus te bestellen?
  •   tnx @VistaHypotheken https://t.co/qFoQS6mQ63
  •   @gotheap based on the link i understand they should show up after a build as well? i only see them for the test on… https://t.co/XadwWJjIAM
  •   @panos_panay will the surface go with lte have gps? i need a new device to run my own app for navigation while flying around
  •   @aaronbjork @IoannisKarlis @Jira @VSTS and replace delivery plans with the feature timeline extension. that is really helpful!