Как установить выбранный элемент или значение для списка в WPF из кода позади? - PullRequest
0 голосов
/ 02 мая 2018

У меня есть список, и мне нужно установить его выбранное значение из кода. Это не получает заданное значение. Я работаю над приложением WPF. Пожалуйста, помогите мне с кодом. Вот мой код:

 <ListBox x:Name="lbCheque" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,191,0,0" 
      Width="200" Height="210" SelectionChanged="lbCheque_SelectionChanged" >
 <ListBox.ItemContainerStyle>
     <Style TargetType="ListBoxItem">
         <Style.Triggers>
             <Trigger Property="IsSelected" Value="True" >
                 <Setter Property="FontWeight" Value="Bold" />
                 <Setter Property="Foreground" Value="Black" />
             </Trigger>
         </Style.Triggers>
     </Style>
 </ListBox.ItemContainerStyle>

Код:

lbCheque.SelectedItem = "abcd";

1 Ответ

0 голосов
/ 02 мая 2018

Это работает для меня.

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="100"/>
        </Grid.ColumnDefinitions>
        <ListBox x:Name="lbCheque" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,191,0,0" 
          Width="200" Height="210" >
            <ListBox.ItemContainerStyle>
                <Style TargetType="ListBoxItem">
                    <Style.Triggers>
                        <Trigger Property="IsSelected" Value="True" >
                            <Setter Property="FontWeight" Value="Bold" />
                            <Setter Property="Foreground" Value="Black" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </ListBox.ItemContainerStyle>
        </ListBox>

        <Button 
            Grid.Column="1"
            Content="Select" 
            Click="Button_Click"/>
    </Grid>
</Window>

И

    public MainWindow()
    {
        InitializeComponent();
        lbCheque.ItemsSource = new List<string> {"aa","bb","cc" };
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        lbCheque.SelectedItem = "bb";
    }

Это зависит от того факта, что строки немного странные, и все строки "bb" являются одним и тем же объектом. С более сложным объектом мне нужно получить ссылку на конкретный экземпляр или переопределить равные в классе.

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