Имам списъчно поле, което, когато е избран елемент, извиква метод, който изпълнява съхранена процедура.
Проблемът е, че когато първият елемент е избран, моето събитие PropertyChanged не се задейства, освен ако изборът не е променен от един елемент на друг. По този начин се задейства известието SelectedItem PropertyChanged за втория елемент, но изглежда, че избирането на първия елемент просто се вижда като влизане в списъчната кутия, вместо влизане в списъчната кутия И избиране на елемента, върху който се кликва.
Освен това не мога просто да щракна два пъти върху един и същи елемент, за да се задейства известието, трябва всъщност да избера различно свойство, за да се случи събитието.
Кой е най-добрият начин да накарам елемента, върху който първо щраквам при влизане в списъчното поле, да бъде SelectedItem, като събитието PropertySelected/Property Changed се задейства за този елемент? Надявам се това да е ясно.
По-долу е моят код, благодаря предварително!
В моя изгледмодел:
public ObjectClass SelectedObject
{
get { return _SelectedObject; }
set
{
_SelectedObject = value;
base.OnPropertyChanged("SelectedObject");
}
}
void OnPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
switch (e.PropertyName)
{
case "SelectedObject" : UpdateSelectedStuffList.StoredProcedureMethod(this);
}
}
Според мен:
<ListBox ItemsSource="{Binding Path=ObjectCollection, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="objectName"
SelectedItem="{Binding Path=SelectedObject, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
Мислех си, че вместо да използвам PropertyChangedEventArgs, ще има нещо като "PropertySelectedEventArgs." ИЛИ може би трябва да внедря INotifyPropertyChanging?