Holen Sie sich die Quelle mit dem Wert in ConvertBack () - Methode für die IValueConverter-Implementierung in WPF binden
Bin ich verbindlich eine Abhängigkeitseigenschaft zu textboxex in WPF. Die Eigenschaft ist ein string, der hat einige Werte, getrennt durch '/' (Beispiel: "1/2/3/4" ). Ich zu binden, müssen die einzelnen Werte zu trennen Textfelder, die in Ordnung ist, nach der Umsetzung der Convert()
Methode:
public object Convert(object value, Type targetType, object parameter,System.Globalization.CultureInfo culture)
{
if (!string.IsNullOrEmpty(value as string))
{
String[] data = (value as string).Split('/');
return data[Int16.Parse(parameter as string)];
}
return String.Empty;
}
Und ich bin mit der ConverterParameter
im xaml
angeben, die position von gesuchten Wert.
Das problem ist jedoch, mit ConvertBack()
Methode. Ich weiß nicht, wie man das Quell-Wert, also könnte ich nur hinzufügen oder ändern Sie einfach einen Wert in der string (auf der angegebenen position).
Vielen Dank für jede Hilfe.
- Könnten Sie die Eigenschaft ändern, um ein IList - <Zeichenfolge> ersetzen?
- Ich bin mit LINQ to SQL-Klassen, ich würde wahrscheinlich haben ändern Sie den generierten code
Du musst angemeldet sein, um einen Kommentar abzugeben.
In den meisten Fällen, können Sie sicher
ConvertBack
werfenNotImplementedException
.In der Tat, Sie haben einfach noch nicht genug Informationen zum erstellen der Quell-Wert von seinem Teil!!!!
Wenn Sie wirklich brauchen, die zurück-Umwandlung (z.B. wenn Sie die Verwendung von zwei-Richtung-Bindung), würde ich teilen Sie die Immobilie in 3 strings in der view-Modell (die Klasse verwendet, in
DataContext
), und binden Sie Sie separat.NotImplementedException
sondern eineNotSupportedException
als die Methode wird nie umgesetzt werden.DataContext
ich nenneDataContext.SubmitChanges()
zum speichern von Daten auf der lokalen DatenbankINotifyPropertyChanged
- Schnittstelle?UpdateParts
. Und Sie brauchen nichtINotifyPropertyChanged
, daFirst
etc. abhängigkeitseigenschaften.DataContext.SubmitChanges()
? Ist das richtig?GetValue()
,SetValue()
undUpdateParts()
Recht?INotifyPropertyChanged
Schnittstelle..keine einfache änderung, um Ihren code, um es zu lösen? Vielen DankUpdate
Wahrscheinlich haben Sie Ihr Problem gelöst, die bereits mit der Hilfe von Vlad, ich dachte nur, ich sollte hinzufügen, einen anderen Weg, der eigentlich immer den Quellwert in den Konverter.
Ersten könnten Sie Ihren Konverter stammen aus
DependencyObject
so können Sie eine Abhängigkeitseigenschaft, die wir verpflichten, umLeider ein Konverter nicht über eine
DataContext
so die Bindung wird nicht funktionieren, out of the box, aber können Sie verwenden, Josh Smith ' s ausgezeichnetesDataContextSpy
: Künstliche Vererbung Zusammenhängen in WPFEnde Update
Dr. WPF hat eine elegante Lösung für diese finden Sie in den folgenden thread
Der Zugang zu verbindlichen Quelle in ConvertBack()?
Bearbeiten
Mithilfe der Lösung von Dr. WPF, Sie könnte die Versorgung sowohl der string-index und die Quelle
TextBox
um den Konverter mit diesem (vielleicht etwas Ausführlicher) BeispielcodeUnd dann könnte man später den Zugriff auf den index und die
TextBox
in die Methode ConvertBackConverterParameter
die Dr. WPF verwendet, um das ObjektConverterParameter
wenn Sie e.g<x:Array "sys:Object">
..TextBox.Text
ist, was dieobject value
hält. Ich brauche, um den ursprünglichen Wert aus der gebundenen Abhängigkeitseigenschaft (bevor es umgewandelt wird, mitConvert()
Methode und angezeigtTextBox
DataContext
stattDependencyProperty
so kann ich nicht einfach übergeben, die es irgendwie in dieConvertParameter
mit derx:Array
wie Sie vorgeschlagen?Wären Sie besser dran mit einem IMultiValueConverter und ein MultiBinding?
IMultiValueConverter
ist nicht das, was ich brauche, Vlad ist richtigIn diesem Fall, wenn Sie wirklich wollen, um in der Lage sein, zu Bearbeiten Bestandteile
Sie könnte Ihre Zahl durch ein komplexeres Objekt, das ermöglicht den Zugriff auf seine 4 Bestandteile durch einen indexer. So ist es nur eine einfache Bindung und das Objekt hält, dass die 4 Teile zugegriffen wird, und können Stück zusammen die ganze Zahl:
Ich einfach aufgebaut, schnelle Probe. Bitte prüfen Sie, ob Sie sind auf der Suche für das gleiche. Das ist eine Arbeit, auf mein Ende.
Xaml-Code
Code Hinter
Allerdings, ich konnte nicht verstehen das genaue Problem mit
ConvertBack
Methode. Könnten Sie das bitte etwas näher erläutern?