Я использую WPF и шаблон MVVM.Все комбинированные списки, которые связаны со списками, работают нормально, но у меня есть каскадный выпадающий список, который использует CollectionViewSource
для фильтрации.Фильтрация работает так же, как и сеттер (который во время поиска ответа видел другого человека, у которого были проблемы), но я не могу установить начальное значение.Я пробовал несколько методов, но ни один из них не влияет на выбранный элемент.
Viewmodel ctor и установщик свойства (_ticket.SelectedSubstatus устанавливается в конструкторе модели):
public TicketViewModel()
{
_ticket = new TicketModel();
SubstatusList = CollectionViewSource.GetDefaultView(GetStatusList());
SubstatusList.Filter = (x) => { return (int)(x as Substatus).IST_MAIN_STATUS == (int)SelectedStatus.IST_STATUS_ID; };
SubstatusList.MoveCurrentTo(_ticket.SelectedSubstatus);
SelectedSubstatus = _ticket.SelectedSubstatus;
Substatus test = (Substatus)SubstatusList.CurrentItem;
}
public Substatus SelectedSubstatus
{
get { return _ticket.SelectedSubstatus; }
set
{
if (value == _ticket.SelectedSubstatus ||value == null)
return;
_ticket.SelectedSubstatus = value;
_ticket.Issue.IS_SUBSTATUS_ID = value.IST_SUBSTATUS_ID;
base.OnPropertyChanged("SelectedSubstatus");
}
}
и здесьявляется комбинированным списком XAML
<ComboBox HorizontalAlignment="Stretch" Margin="15,0,0,0"
Name="comboBox1" VerticalAlignment="Bottom"
Grid.Column="2" Grid.Row="1" FontSize="12"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding Path=SubstatusList}"
SelectedItem="{Binding Path=SelectedSubstatus, Mode=TwoWay}"
DisplayMemberPath="IST_NAME"/>
Текущий элемент из CollectionViewSource
является нулевым только после того, как он был установлен MoveCurrentTo (), и при проверке тестом.Что я делаю не так?