Как я могу установить SelectedIndex комбинированного списка внутри GridView внутри ListView - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть Combobox внутри GridView (ListView). Я хочу установить SelectedIndex ComboBox с Code-behind. Я пробовал через XAML с привязкой SelectedIndex, но я получаю ArgumentOutOfRangeException после добавления моих объектов через LVCriteria.Items.Add (object). Значение равно 2, поэтому внутри индекса.

<ListView x:Name="LVCriteria" Width="500" Height="230" SelectionChanged="LVCriteria_SelectionChanged" SelectionMode="Single" ScrollViewer.VerticalScrollBarVisibility="Auto" >                           
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Operator">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <ComboBox x:Name="CBOperator" SelectedIndex="{Binding Operator}"HorizontalContentAlignment="Center" Style="{StaticResource MaterialDesignComboBox}" Width="50"  Padding="0,0,0,5" SelectionChanged="CBOperator_SelectionChanged">
                            <ComboBoxItem Background="{StaticResource MaterialDesignPaper}" Content="&lt;"/>
                            <ComboBoxItem Background="{StaticResource MaterialDesignPaper}" Content="&gt;"/>
                            <ComboBoxItem Background="{StaticResource MaterialDesignPaper}" Content="="/>
                            <ComboBoxItem Background="{StaticResource MaterialDesignPaper}" Content="&lt;="/>
                            <ComboBoxItem Background="{StaticResource MaterialDesignPaper}" Content="&gt;="/>
                        </ComboBox>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

Класс

public class PK
{ 
    public string ID { get; set; }
    public string Criteria { get; set; }
    public float? Value { get; set; }
    public int Operator { get; set; }
    public int Comp_id { get; set; }
    public int Type { get; set; }
}

1 Ответ

0 голосов
/ 07 сентября 2018

Я не знаю, почему это работает, но решением является задержка в цикле for. Я использую цикл for для добавления своих объектов в ListView.

ОБНОВЛЕНИЕ: это проблема виртуализации. Решение установлено

VirtualizingStackPanel.IsVirtualizing = "False"

в ListView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...