Unfortunately. For UWP AffectsMeasure is not supported. For Framework 3+, it works. To bind UWP by default, I work with CodeSnipped functionality. With event handling, you can act transparently. The result of my Snippet code for UWP looks like this for my model:
#region IsSelected public static readonly DependencyProperty IsSelectedProperty = DependencyProperty.Register("IsSelected", typeof(bool), typeof(PositionModel), new PropertyMetadata((bool)false, new PropertyChangedCallback(OnIsSelectedChanged))); public bool IsSelected { get { return (bool)GetValue(IsSelectedProperty); } set { SetValue(IsSelectedProperty, value); } } private static void OnIsSelectedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { PositionModel target = (PositionModel)d; bool oldIsSelected = (bool)e.OldValue; bool newIsSelected = target.IsSelected; target.OnIsSelectedChanged(oldIsSelected, newIsSelected); } protected virtual void OnIsSelectedChanged(bool oldIsSelected, bool newIsSelected) { // Do what your need in your property changed event // In my case, I just raise the PropertyChanged for PropertyChangedEventHandler // RaisePropertyChanged(nameof(IsSelected)); }
XAML:
<Rectangle Fill="Black" Visibility="{x:Bind IsSelected, Mode=OneWay, Converter={StaticResource BoolToVis}}" />
Windows 10, Store, VS 2017, Microsoft.NETCore.UniversalWindowsPlatform Version 5.2.3
source share