HJST1979 Geschrieben 14. Januar 2014 Geschrieben 14. Januar 2014 Hallo ich hoffe hier kann mir jemand helfen ich habe folgende XAML- Datei <UserControl x:Class="LabelTextbox" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:HJSTFaktura.Steuerelemente" xmlns:System="clr-namespace:System;assembly=mscorlib" mc:Ignorable="d" DataContext="{Binding RelativeSource={RelativeSource Self}}" x:Name="LabelTextbox" Height="22" Width="Auto" d:DesignHeight="22" d:DesignWidth="435"> <WrapPanel> <Label Width="{Binding Path=HJSTLabelBreite}" Height="24" VerticalAlignment="Top" Content="{Binding Path=HJSTLabelContent}"></Label> <Label Width="5"></Label> <TextBox x:Name="Textbox1" Width="{Binding Path=HJSTTextboxBreite}" Style="{StaticResource ResourceKey=StyleTextBox}" Height="22"> <Binding Path="HJSTTextboxText"> <Binding.ValidationRules> <local:MyValidationRules ValidatesOnTargetUpdated="true"> <local:MyValidationRules.Params > <local:ValidationParams [COLOR="#FF0000"]ValidationType[/COLOR]="{Binding [COLOR="#FF0000"]HJSTValidationType[/COLOR]}"></local:ValidationParams> </local:MyValidationRules.Params> </local:MyValidationRules> </Binding.ValidationRules> </Binding> </TextBox> </WrapPanel> </UserControl> Nun zu den roten Markierungen: - Gebe ich den ValidationType direkt an --> alles einwandfrei, Code reagiert wie gewünscht. Ich möchte ihn aber als DependencyProperty angeben --> das Funktioniert nicht, kein Fehlermeldung Ich habe zwar schon das ein oder andere gelesen aber die gefundenen Lösungen gehen nicht. Was ich herausgefunden habe ist, dass ich das DependencyProperty scheinbar nicht im Zugriff habe (Datacontext) aber ich weiß auch nicht wie ich es angeben kann. Hoffe auf eure Hilfe Danke schonmal
Guybrush Threepwood Geschrieben 14. Januar 2014 Geschrieben 14. Januar 2014 Hast du das schon gesehen? Binding ValidationRule's property
Klotzkopp Geschrieben 14. Januar 2014 Geschrieben 14. Januar 2014 Ich möchte ihn aber als DependencyProperty angeben --> das Funktioniert nicht, kein FehlermeldungWenn das Binding fehlschlägt, sollte aber zumindest im Debug-Log eine Ausgabe zu sehen sein. Hat deine UserControl-Klasse denn ein DependencyProperty HJSTValidationType?
HJST1979 Geschrieben 14. Januar 2014 Autor Geschrieben 14. Januar 2014 Hallo folgender Fehler kommt (den ich irgendwie übersehen hatte) System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=HJSTValidationType; DataItem=null; target element is 'ValidationParams' (HashCode=39642524); target property is 'ValidationType' (type 'ValidationTypes') Gruß Hans-Jörg
HJST1979 Geschrieben 14. Januar 2014 Autor Geschrieben 14. Januar 2014 (bearbeitet) Hallo das was ich probiert hatte, hatte schon immer ohne dass es mir aufgefallen ist "funktioniert" aber halt nicht komplett richtig. Ich bekomme nun keinen Fehler mehr, ABER die Validierung wird "nur" überprüft, wenn ich in die Textbox erst einen Wert schreibe und danach wieder lösche und danach die Textbox verlasse. Die ValidationRule prüft ob ein Wert drin steht oder nicht. Gruß Hans-Jörg Bearbeitet 14. Januar 2014 von HJST1979
HJST1979 Geschrieben 16. Januar 2014 Autor Geschrieben 16. Januar 2014 Hallo wie man den oberen Fehler wegbekommt, dass habe ich jetzt teilweise hinbekommen. Warum teilweise: Ich habe ein noch viel größeres "allgemeines" Problem festgestellt. Ich arbeite ja auch für den Wert mit {Binding...} und DepencyProperty solange ich überhaupt keine ValidationRule habe kommen alle Informationen zum Ursprungsobjekt hin und zurück. Sobald ich aber eine ValidationRule habe die auf einen Fehler läuft kommt nicht der aktuelle Wert im Ursprungsobjekt an, sondern der Programmablauf scheint irgendwie "abzubrechen". Dies bedeutet das der letzte "gültige" Wert im Ursprungsobjekt steht. Mal sehen, wie ich das hinbekomme Gruß Hans-Jörg
R1I9C8H5I Geschrieben 16. Januar 2014 Geschrieben 16. Januar 2014 ... es gibt ja auch 3-4 verschiedene Arten, wie man validieren kann... die unterscheiden sich neben der Implementierung auch genau an diesem Punkt, ob die Daten ins ViewModel wandern oder nicht...
HJST1979 Geschrieben 16. Januar 2014 Autor Geschrieben 16. Januar 2014 Und wie muss ich es implementieren wenn ich will, dass die Daten ins ViewModel wander?
R1I9C8H5I Geschrieben 16. Januar 2014 Geschrieben 16. Januar 2014 Eine Möglichkeit bietet die IDataErrorInfo-Schnittstelle... public string Error { get { return null; } } public string this[string name] { get { string result = null; if (name == ....) { } } }
HJST1979 Geschrieben 17. Januar 2014 Autor Geschrieben 17. Januar 2014 Hallo das war genau des Rätzels Lösung. Jetzt klappt es wie ich es mir vorstelle. Vielen Dank
R1I9C8H5I Geschrieben 17. Januar 2014 Geschrieben 17. Januar 2014 Bitte. Ich will zwar keine Werbung machen... aber, habe da einen ziemlich guten Buchtipp: http://www.amazon.de/Windows-Presentation-Foundation-4-5-umfassende/dp/3836219565/ref=sr_1_1?ie=UTF8&qid=1389949855&sr=8-1&keywords=wpf+galileo Damit konnte ich mich in der letzten Jahreshälfte in ca. 2-3 Wochen ziemlich gut in das ganze Zeug einlesen. Vielleicht ist das ja auch was für dich...
HJST1979 Geschrieben 17. Januar 2014 Autor Geschrieben 17. Januar 2014 Buchtipps kann man immer gebrauchen, vor allem wenn jemand schon positive Erfahrungen sammeln drufte
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden