В рамках обучения WPF я только что закончил работу с помощью MS Lab Exercise под названием «Использование привязки данных в WPF» (http://windowsclient.net/downloads/folders/hands-on-labs/entry3729.aspx).Связывание данных Wpf с использованием IMultiValueConverter и ошибки литья
Чтобы проиллюстрировать использование IMultiValueConverter, существует предварительная кодировка реализации, в которой логический результат используется для определения того, является ли привязка данных актуальной для текущего пользователя. Вот код для конвертирования:
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) {
// var rating = int.Parse(values[0].ToString());
var rating = (int)(values[0]);
var date = (DateTime)(values[1]);
// if the user has a good rating (10+) and has been a member for more than a year, special features are available
return _hasGoodRating(rating) && _isLongTimeMember(date);
}
А вот разводка использовать это в XAML:
<ComboBox.IsEnabled>
<MultiBinding Converter="{StaticResource specialFeaturesConverter}">
<Binding Path="CurrentUser.Rating" Source="{x:Static Application.Current}"/>
<Binding Path="CurrentUser.MemberSince" Source="{x:Static Application.Current}"/>
</MultiBinding>
</ComboBox.IsEnabled>
код работает отлично, но дизайнер XAML не будет загружаться с " Указанный приведение недействительно. " ошибка. Я попробовал несколько способов не использовать бросок, один из которых я оставил без комментариев в коде выше. Самое смешное - законченное лабораторное упражнение, предоставленное MS, также имеет ошибку.
Кто-нибудь знает, как исправить это, чтобы сделать дизайнера счастливым?
Cheers,
Berryl
Пятно на. Заставляет удивляться, почему хорошие люди в MS не могли это объяснить, как вы это делали, когда публиковали * учебный материал! ура – Berryl