我有一个带有一些值的 ComboBox,我希望同时进行两件事。
这是我的组合框,我想将 10 显示为默认值并将其绑定到双精度值?距离属性。
<ComboBox Grid.Row="5" Grid.Column="1"
SelectedIndex="1"
SelectedValue="{Binding Distance, Mode=TwoWay, Converter={StaticResource StringToDoubleConverter}}">
<ComboBoxItem>1</ComboBoxItem>
<ComboBoxItem IsSelected="True">10</ComboBoxItem>
<ComboBoxItem>100</ComboBoxItem>
<ComboBoxItem>1000</ComboBoxItem>
</ComboBox>
这是转换器:
public class StringToDoubleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
ComboBoxItem item = value as ComboBoxItem;
if (item != null)
{
double d;
if (double.TryParse(item.Content.ToString(), out d))
return d;
}
return null;
}
}
问题在于,在此代码中,所选项目 10 未在应用程序启动时显示。如果我将使用转换器删除该行,那么它将显示所选项目 10,但是,我不能将它绑定到双精度?距离属性。我不想为它写一个代码,例如:Convert.ToDouble(combobox1.SelectedValue)...
我该怎么做才能使这两件事都起作用?