Je vais commencer par mon exemple de code. C'est une application WPF.Comment puis-je sélectionner un élément dans une liste déroulante wpf lorsqu'il s'agit d'un préfixe d'un élément précédent?
MainWindow.xaml:
<Window x:Class="DemoComboBoxProblem.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DemoComboBoxProblem"
mc:Ignorable="d"
Title="MainWindow" Height="60" Width="200">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ComboBox Name="CB0" Grid.Column="0" Width="60">
<ComboBoxItem>CRLF</ComboBoxItem>
<ComboBoxItem>CR</ComboBoxItem>
<ComboBoxItem>LF</ComboBoxItem>
<ComboBoxItem>LFCR</ComboBoxItem>
</ComboBox>
<ComboBox Name="CB1" Grid.Column="1" Width="60">
<ComboBoxItem>CRLF</ComboBoxItem>
<ComboBoxItem>AA</ComboBoxItem>
<ComboBoxItem>BB</ComboBoxItem>
<ComboBoxItem>LFCR</ComboBoxItem>
</ComboBox>
</Grid>
</Window>
MainWindow.xaml.cs:
using System.Windows;
namespace DemoComboBoxProblem
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
CB0.Text = "CR";
CB1.Text = "AA";
}
}
}
Je veux sélectionner programatically l'élément "CR" dans CB0 et l'élément "AA" dans CB1.
Lorsque je lance ceci, CB0 n'affiche rien et (je suppose) aucun élément n'y est sélectionné. CB1 s'affiche correctement et a sélectionné "AA". Je pense que cela a quelque chose à voir avec "CR" étant un préfixe de "CRLF". Je peux le faire fonctionner si je change l'ordre des articles, mais je me demande: quelle est la bonne façon de le faire fonctionner avec les articles dans l'ordre donné?
Merci
Pourquoi voulez-vous le faire programatically? Vous pouvez le faire en XAML si vous le souhaitez. – CodingYoshi
Vous pouvez définir dans XAML SelectedIndex dans ComboBox. Mais le meilleur moyen sera d'utiliser un pattern MVVM avec des bindings. – Bibop
Avez-vous essayé d'utiliser 'CB0.SelectedValue =" CR ";'? Cela pourrait faire la différence, même si c'est inhabituel pourquoi '.Text' ne fonctionne pas. –