无法解释为什么我的combobox
中不会显示负数-1至-8。我已经查看了单个数字,只有提到的数字无效。所有其他数字(负数和正数)似乎都不错。任何线索都值得赞赏。
XAML:
<ComboBox Grid.Row="2" Grid.Column="1" md:HintAssist.Hint="Degrees" MinWidth="72" Margin="16 0 0 0"
ItemsSource="{Binding LongtitudeRange}"
Style="{StaticResource MaterialDesignFloatingHintComboBox}">
<ComboBox.Text>
<Binding Path="Long1" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<domain:NotEmptyValidationRule ValidatesOnTargetUpdated="True"/>
</Binding.ValidationRules>
</Binding>
</ComboBox.Text>
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
VM Contructor ..
LongtitudeRange = new List<int>(Enumerable.Range(-179, 359));
属性,我已经验证r
的号码正确。
public IList<int> LongtitudeRange { get; }
public double Long1
{
get
{
var l = Conversions.DoubleToDegreeString(SkyServer.Longitude);
var lsplit = l.Split(':');
var r = Convert.ToDouble(lsplit[0]);
return r;
}
set
{
var l = Conversions.DegreeToDouble(value, Long2, Long3);
if (Math.Abs(l - SkyServer.Longitude) < 0.00001) return;
SkyServer.Longitude = l;
OnPropertyChanged();
}
}
我从另一种方法调用此方法以启动更新OnPropertyChanged($"Long1");