我有UserControl
aListBox
和 a DoubleUpDown
。当我选择ListBox
我要设置的项目时Minimum
,用户可以不从预定义的范围更改,而是在给定值附近的某个范围内更改。我使用这段代码: Maximum
Value
DoubleUpDown
Value
<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>
问题是这段代码首先设置了Value
,然后设置了Minimum
,Maximum
所以如果我有这个值:
Name | MyValue | MaxDif
-----------------------
One | 6 | 2
Two | 1 | 1
一的范围是 4..8,二的范围是 0..2。如果我先选择One,然后选择Two,它看起来像,因为当One的范围仍处于活动状态 Two.MyVal = 4
时,将插入该值。
如何更改代码以首先设置Minimum
和Maximum
然后设置Value
?