1
私のコード例から始めます。これはWPFアプリケーションです。wpfコンボボックスで項目を選択するには、前の項目の接頭辞の場合はどうすればいいですか?
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";
}
}
}
私はプログラム的CB1内の項目CB0の "CR" と項目 "AA" を選択します。
これを実行すると、CB0は何も表示せず、アイテムが選択されていません。 CB1が正しく表示され、「AA」が選択されました。私はこれが "CR"が "CRLF"のプレフィックスであることと関係があると思います。私はアイテムの順序を変更すると動作させることができますが、私は疑問に思っています:アイテムを指定した順序で動作させる正しい方法は何ですか?
おかげ
は、なぜあなたはプログラム的にそれをしたいですか?必要に応じてXAMLで実行できます。 – CodingYoshi
ComboBoxでXAML SelectedIndexに設定できます。しかし、最良の方法は、バインディングでMVVMパターンを使用することです。 – Bibop
'CB0.SelectedValue =" CR ";'を使ってみましたか?違いはありますが、 '.Text'がうまくいかないことは珍しいですが。 –