-1

私は2つのコンボボックスを持っています

<ComboBox x:Name="sourceNumber">
    <ComboBoxItem Content="1"/>
    <ComboBoxItem Content="2"/>
    <ComboBoxItem Content="3"/>
    <ComboBoxItem Content="4"/>
    <ComboBoxItem Content="5"/>

<ComboBox x:Name=destinationNumber ItemsSource="{Binding Source={sourceNumber.SelectedIndex}"/>

選択するとsourceNumber = 3 (1,2,3)が追加されdestinationNumber
ます選択するとsourceNumber = 5 (1,2,3,4,5)が追加されますdestinationNumber

どうすればいいですか?助けてくれてありがとう。

4

1 に答える 1

0

コンバーターを使用してこの問題を解決できます。

public class ComboBoxItemsSourceConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if(value != null && value is int)
            {
                int max = (int)value;
                if (max == -1) return null;
                return Enumerable.Range(1, max + 1);
            }
            else
                return null;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

また、XAML コードを少し変更する必要があります。

<ComboBox x:Name="destinationNumber" 
                  ItemsSource="{Binding Path=SelectedIndex, ElementName=sourceNumber, Converter={StaticResource myConverter}}"/>

どこmyConverterにある:

<local:ComboBoxItemsSourceConverter x:Key="myConverter" />
于 2012-11-24T21:18:16.710 に答える