Ich habe eine UserControl
mit einer ListBox
und eine DoubleUpDown
. Als ich den Artikel in der ListBox
wählen möchte ich die Minimum
, Maximum
und die Value
des DoubleUpDown
einzustellen, so kann der Benutzer die Value
ändern nicht aus vordefinierten Bereich, sondern in einem gewissen Bereich um den angegebenen Wert. Ich benutze diesen Code:Bind DoubleUpDown Wert nach Minimum und Maximum
<extToolkit:DoubleUpDown Increment="0.1" Value="{Binding SelectedItem.MyValue, ElementName=listBox1, UpdateSourceTrigger=PropertyChanged, Converter={conv:CheckValue}}" FormatString="0.0">
<extToolkit:DoubleUpDown.Maximum>
<MultiBinding Converter="{conv:CorMaximum}">
<Binding Path="SelectedItem.MyValue" ElementName="listBox1" />
<Binding Path="SelectedItem.MaxDif" ElementName="listBox1" />
</MultiBinding>
</extToolkit:DoubleUpDown.Maximum>
<extToolkit:DoubleUpDown.Minimum>
<MultiBinding Converter="{conv:CorMinimum}">
<Binding Path="SelectedItem.MyValue" ElementName="listBox1" />
<Binding Path="SelectedItem.MaxDif" ElementName="listBox1" />
</MultiBinding>
</extToolkit:DoubleUpDown.Minimum>
</extToolkit:DoubleUpDown>
Das Problem ist, dass dieser Code zuerst die Value
gesetzt und danach stellen Sie die Minimum
und Maximum
so, wenn ich diese Werte haben:
Name | MyValue | MaxDif
-----------------------
One | 6 | 2
Two | 1 | 1
Der Bereich für One ist 4.8 und der Bereich für Zwei ist 0..2. Wenn ich zuerst eins und dann zwei wähle sieht es wie die Two.MyVal = 4
aus, weil der Wert eingefügt wird, wenn der Bereich von One noch aktiv ist.
Wie ändert man den Code, um zuerst die Minimum
und Maximum
und danach die Value
setzen?
Ich bin nicht 100% sicher, ob das wirklich der Fall ist, aber aus meiner Beobachtung bestimmt die Reihenfolge, in der die Eigenschaften in XAML gesetzt sind, wie sie initialisiert/zugewiesen werden. Versuchen Sie, den Wert ** nach ** Max/Min wie zB: '
Ja, Sie haben Recht. Ich hoffe nur, dass das 100% ig funktioniert :-) – Artholl