Я занимаюсь разработкой с использованием Silverlight 3, и у меня есть следующий xaml:
<Application.Resources>
<DataTemplate x:Key="LineCombo">
<StackPanel Orientation="Horizontal" Margin="2">
<Line X1="0" Y1="0" X2="50" Y2="0" VerticalAlignment="Center" Stroke="Blue" StrokeThickness="1" StrokeDashArray="{Binding}" />
</StackPanel>
</DataTemplate>
</Application.Resources>
<StackPanel>
<ComboBox x:Name="ComboBoxTest1" ItemTemplate="{StaticResource LineCombo}" Width="200" Height="30">
</ComboBox>
<ComboBox x:Name="ComboBoxTest2" ItemTemplate="{StaticResource LineCombo}" Width="200" Height="30">
</ComboBox>
</StackPanel>
и код позади:
public ObservableCollection<DoubleCollection> strokeDashArrays1 = new ObservableCollection<DoubleCollection>();
public ObservableCollection<Double[]> strokeDashArrays2 = new ObservableCollection<Double[]>();
public MainPage()
{
InitializeComponent();
strokeDashArrays1.Add(new DoubleCollection { 2, 4 });
strokeDashArrays1.Add(new DoubleCollection { 3, 6 });
strokeDashArrays1.Add(new DoubleCollection { 4, 8 });
strokeDashArrays2.Add(new double[] { 2, 4 });
strokeDashArrays2.Add(new double[] { 3, 6 });
strokeDashArrays2.Add(new double[] { 4, 8 });
ComboBoxTest1.ItemsSource = strokeDashArrays1;
ComboBoxTest2.ItemsSource = strokeDashArrays2;
}
При выборе элемента из ComboBoxTest1 возникает исключение ArgumentException:
«Значение не попадает в ожидаемый диапазон».
При выборе элемента отображается OK и ComboBoxTest2 работает нормально.
Что вызывает такое поведение?
Я работаю с Silverlight только пару недель и пытаюсь отобразить ComboBox StrokeDashArrays, чтобы разрешить настройку линии.