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 Zitieren
Guybrush Threepwood Geschrieben 14. Januar 2014 Geschrieben 14. Januar 2014 Hast du das schon gesehen? Binding ValidationRule's property Zitieren
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? Zitieren
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 Zitieren
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 Zitieren
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 Zitieren
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... Zitieren
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? Zitieren
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 == ....) { } } } Zitieren
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 Zitieren
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... Zitieren
HJST1979 Geschrieben 17. Januar 2014 Autor Geschrieben 17. Januar 2014 Buchtipps kann man immer gebrauchen, vor allem wenn jemand schon positive Erfahrungen sammeln drufte Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.