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'不起作用是很常見的。 –