У меня есть выпадающий список, который содержит мои категории.В этом поле со списком у меня также есть элемент с именем <- NEW CATEGORY ->, в котором есть событие щелчка.Сейчас давайте забудем о том, что он открывает новое окно или диалоговое окно для добавления новой категории ... теперь я хочу, чтобы при выборе <- NEW CATEGORY -> в поле со списком выбранный индекс изменялся на -1.
<ComboBox x:Name="testcombo" HorizontalAlignment="Left" Margin="268,213,0,0" VerticalAlignment="Top" Width="120" Background="#FFC58383" DisplayMemberPath="data" SelectedValuePath="id">
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<EventSetter Event="PreviewMouseLeftButtonUp" Handler="ComboBoxItem_PreviewMouseLeftButtonUp"/>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
и c #
namespace WpfApp4
{
public partial class MainWindow : Window
{
public class Modell
{
public int id { get; set; }
public string data { get; set; }
}
public MainWindow()
{
InitializeComponent();
testcombo.Items.Add(new Modell { id = 0, data = "<--NEW-->" });
testcombo.Items.Add(new Modell { id = 1 , data = "dddd" });
testcombo.Items.Add(new Modell { id = 2, data = "dddzxcd" });
testcombo.Items.Add(new Modell { id = 3, data = "ddczdd" });
}
private void ComboBoxItem_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
var cat_obj = (sender as ComboBoxItem).Content as Modell;
if (cat_obj.id == 0)
{
testcombo.SelectedIndex = -1;
//MessageBox.Show("", "", MessageBoxButton.OK);
}
}
}
}
Проблема в том, что приведенный выше код не меняет индекс на -1, но когда я добавляю окно сообщения после или перед строкой testcombo.SelectedIndex = -1;
, это работает: |
примечание: Я не могу сделать индекс до -1 в выпадающем списке SelectionChanged, поскольку в основном проекте у меня есть событие keyUp, которое выбирает элемент с помощью клавиатуры arrowUp / Down