Я пытаюсь заполнить список со списком wpf. У меня есть две проблемы.WPF ComboBox привязка к списку <string>
- Это ничего
- не заселить Я использую аннотации данных для проверки. Он не устанавливает сообщение «Требуется» в области отображения ошибок.
Вот мой XAML для выпадающего списка:
<Label Target="{Binding ElementName=State}" Grid.Row="10" Grid.Column="0">State:</Label>
<ComboBox x:Name="State" Margin="10,0,0,10" Grid.Column="1" Grid.Row="10" ItemsSource="{Binding Path=States, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnDataErrors=True}" Validation.Error="Validation_Error" SelectedValue="{Binding Path=FamilyMember.State}"/>
<TextBlock Grid.Column="2" Grid.Row="10" Style="{StaticResource TextBlockStyle}" Text="{Binding (Validation.Errors)[0].ErrorContent, ElementName=State}" Margin="10,0,0,10"/>
Вот мое частичное ViewModel, где я заявляю и заселение моего объекта States.
Недвижимость в ViewModel
public ObservableCollection<string> States;
Конструктора:
States = new ObservableCollection<string>();
States.Add("One");
States.Add("Two");
States.Add("Three");
States.Add("Four");
States.Add("Five");
Вот доказательство от моего Debug, что я получаю состояния правильно с точки зрения.
И еще одна проблема заключается в том, что моя ошибка аннотацию данных не работает Вот моя частичная Модель:
Это работает для других областей без каких-либо проблем, как показано ниже:
* Недвижимость в ViewModel 'общественного ObservableCollection Штаты;' * - Это не имущество. Это поле. Вы не можете привязываться к нему. Вы можете привязываться только к свойствам. Вы должны сделать это свойство, дав ему '{get; задавать; } '. Во-вторых, ваше «доказательство», что вы «правильно получаете представление о представлении», не имеет для меня никакого смысла; что вы имеете в виду, когда говорите «мнение»? –
В качестве примечания установка 'UpdateSourceTrigger = PropertyChanged' и' Mode = TwoWay' в привязке ItemsSource бессмысленна, поскольку источник никогда не обновляется привязкой. – Clemens