Domanda

Questo codice mi dà un “Argomento out of range” eccezione. Quando ho rimuovere l'associazione al SelectedIndex, il ComboBox è popolato proprio bene e non viene generata un'eccezione.

Qualche idea di cosa sto facendo male? E 'questo (per qualche motivo) non è possibile?

Codice:

public class RuleMap<T> : INotifyPropertyChanged
{
    public ObservableCollection<string> Options
    {
        get
        {
            return new ObservableCollection(){"A", "B", "C"};
        }
    }

    public int SelectedIndex
    {
        get
        {
            return 0;
        }
    }
}

public ObservableCollection<RuleMap> FilterItemSource;

XAML:

<ItemsControl ItemsSource="{Binding FilterItemSource}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">                                 <ComboBox Width="150" SelectedIndex="{Binding SelectedIndex}"
                          ItemsSource="{Binding Options}"/>
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
È stato utile?

Soluzione 3

Si scopre che il controllo ComboBox è stato fondamentalmente rotto per cominciare. Grazie a questo Post di Rockford Lhotka, siamo stati in grado di ignorare il controllo ComboBox con uno che potrebbe correttamente legarsi a SelectedItem.

Ick.

Altri suggerimenti

Credo che SelectedIndex si tratta di una proprietà di sola lettura.
Altro problema può essere che 0 non è nella collezione

Credo che gli elementi non vengono aggiunti prima selectedIndex è Binded, e dal momento che non ci sono voce, sta mostrando Argomento di eccezione intervallo.

Vorrei evitare la restituzione di un nuovo raccolta dalla vostra proprietà Opzioni. Stai facendo un presupposto che WPF accede solo la proprietà una volta.

Ma hai anche la possibilità di utilizzare un CollectionView dove si sta attualmente restituzione di un ObservableCollection. Se stai usando un'architettura MVVM, il vostro ViewModel può esporre la proprietà come CollectionView e ha il concetto di un elemento di "corrente".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top