繁体   English   中英

UWP中的FrameworkPropertyMetadata在哪里?

[英]Where's FrameworkPropertyMetadata in UWP?

和/或如何在我的控件上定义一个DependencyProperty来分离AffectsMeasure

编辑:哦,刚看到这一点-我必须呼吁InvalidateMeasurethis的propertychangedhandler?

抱歉。 对于UWP,不支持AffectsMeasure 对于Framework 3+,它可以工作。 对于默认的UWP绑定,我正在使用CodeSnipped功能。 通过事件处理,您可以采取透明行动。 对于我的模型,我的UWP codeSnippet的结果如下所示:

    #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));
    }
    #endregion

XAML:

<Rectangle Fill="Black" Visibility="{x:Bind IsSelected, Mode=OneWay, Converter={StaticResource BoolToVis}}" />

Windows 10,Store,VS 2017,Microsoft.NETCore.UniversalWindowsPlatform版本5.2.3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM