Und/oder wie definiere ich eine DependencyProperty
auf meiner Steuerung, die AffectsMeasure
definiert?Wo ist FrameworkPropertyMetadata in UWP?
EDIT: oh, sah dies nur - muss ich anrufen InvalidateMeasure
auf this
im propertychangedhandler?
Und/oder wie definiere ich eine DependencyProperty
auf meiner Steuerung, die AffectsMeasure
definiert?Wo ist FrameworkPropertyMetadata in UWP?
EDIT: oh, sah dies nur - muss ich anrufen InvalidateMeasure
auf this
im propertychangedhandler?
Entschuldigung. Für UWP AffectsMeasure wird nicht unterstützt. Für Framework 3+ funktioniert es. Für die Standard-UWP-Bindung arbeite ich mit CodeSnipped-Funktionalität. Mit der Eventhandling können Sie transparent agieren. Das Ergebnis meiner CodeSnippet für UWP sieht wie folgt aus für mein Modell:
#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}}" />
Microsoft Windows 10, Geschäft, VS 2017 Microsoft.NETCore.UniversalWindowsPlatform Version 5.2.3
Ich bin nicht sicher, dass Sie diese Antwort auf die richtige Frage geschrieben haben ... haben Sie weiter gelesen als _wie definiere ich eine DependencyProperty_? –
Entschuldigung. Für UWP AffectsMeasure wird nicht unterstützt. Für Framework 3+ funktioniert es. Ersetzen Sie 'FrameworkPropertyMetadata' durch' PropertyMetadata' und verwenden Sie den Namespace 'Namespace Windows.UI.Xaml' in Ihrem ViewModel. Wie ich verstanden habe, wird das genau dein Problem lösen und deine Frage beantworten. – Nasenbaer
Nun, das sind so viele Informationen, wie ich in meiner Frage geschrieben habe. Und nein, meine Frage ist nicht gelöst. Wenn Sie sorgfältig lesen, möchte ich eine Abhängigkeitseigenschaft, die einen neuen Messdurchlauf auslöst. Denn das hat "InvalidateMeasure" getan. Ihr Beispiel löst einen neuen Messdurchgang aus, weil die Bindung an Sichtbarkeit geht. Probieren Sie "Tag" und sagen Sie mir, es funktioniert einfach. –