Abhängigkeit Eigenschaft zugewiesen mit dem Wert Bindung funktioniert nicht
Ich habe ein usercontrol mit einer Abhängigkeitseigenschaft.
public sealed partial class PenMenu : UserControl, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
public bool ExpandCollapse
{
get
{
return false;
}
set
{
//code
}
}
public static readonly DependencyProperty ExpandCollapseProperty = DependencyProperty.Register("ExpandCollapse", typeof(bool), typeof(PenMenu), null);
//some more code
}
Und ich bin die Zuordnung Wert in XAML-Seite:
<Controls:PenMenu x:Name="penMenu" Opened="Menu_Opened"
ExpandCollapse="{Binding PenMenuVisible}" />
Aber es ist nicht zu schlagen, GET-SET-Teil ExpandCollapse Eigenschaft in das Benutzersteuerelement.
Also ich habe bool bool converter genau zu überprüfen, welcher Wert übergeben wird, mit Bindung wie:
<Controls:PenMenu x:Name="penMenu" Opened="Menu_Opened"
ExpandCollapse="{Binding PenMenuVisible, Converter={StaticResource booleanToBooleanConverter}}" />
Und mit Haltepunkt im Konverter, sehe ich den Wert übergeben wird ist korrekt.
Was ist die mögliche Ursache es ist nicht zugeordnet, um die Abhängigkeit Eigenschaft?
Auch in der XAML-Seite, wenn ich sage:
<Controls:PenMenu x:Name="penMenu" Opened="Menu_Opened"
ExpandCollapse="true"/>
dann trifft es die GET-SET-Teil ExpandCollapse Eigenschaft in das Benutzersteuerelement.
Ich bin steckengeblieben. Das ist seltsam. Bitte helfen Sie.
Für Entwickler, finden Sie diese, bitte beachten Sie, dass bei den framework-updates eine Abhängigkeitseigenschaft es NICHT die CLR-Eigenschaften, die es liest und schreibt die dp direkt, die ist, warum müssen Sie den geänderten Termin.
InformationsquelleAutor ashish nirkhe | 2013-11-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist frustrierend, nicht wahr? Zunächst gehören ein geändert-event-handler. Wie diese:
Dann Lesen Sie bitte diesen Artikel, damit Sie sehen, gibt es mehr Fallstricke, als nur das eine: http://blog.jerrynixon.com/2013/07/solved-two-way-binding-inside-user.html
Viel Glück!
Warum, warum die f*** ist das? Ich verbrachte die Tage an diesem problem. Warum ist das setzen des DataContext des UserControl selbst verhält sich wie das?
Oh mein... vielen Dank für Ihre blog-post! Das half... irgendwie.
InformationsquelleAutor Jerry Nixon - MSFT
Den getter-und setter-einer Abhängigkeitseigenschaft, die nicht garantiert sind, ausgeführt werden, und insbesondere die WPF verbindlich Motor /XAML-Prozessor ist dokumentiert umgehen diese. Haben Sie einen Blick auf MSDN - die getter - /setter-sollte nur ein wrapper um
GetValue
/SetValue
auf dieDependencyProperty
selbst.Statt reagieren in der setter Ihre Immobilie, sollten Sie fügen Sie eine Eigenschaft geändert handler in der ursprünglichen Aufforderung zur
DependencyProperty.Register
, wenn Sie handeln können, auf den neuen Wert.(siehe andere Fragen).
InformationsquelleAutor Nicholas W