Я новичок в WPF, и у меня есть некоторые трудности, когда я пытаюсь заполнить ListView списком пользовательских объектов.Проблема с привязкой WPF
internal class ApplicationCode
{
public int Code { get; set; }
public IEnumerable<string> InstrumentCodes { get; set; }
}
У меня есть список ApplicationCode, который я установил в ItemsSource в ListView. Мне нужно отобразить ApplicationCode.Code как строку, а для остальных столбцов - флажок, который можно проверить/снять, если имя столбца содержится в коллекции InstrumentCodes.
Для того, чтобы установить флажок, я использую конвертер на: привязки данных
<DataTemplate x:Key="InstrumentCodeTemplate">
<CheckBox IsEnabled="False" IsChecked="{Binding Mode=OneTime, Converter={StaticResource InstrumentSelectionConverter}}" />
</DataTemplate>
У меня есть проблема, потому что я не могу знать, что текущий столбец в момент данных ячейки связывания и я не может установить ConverterParameter.
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
ApplicationCode appCode = value as ApplicationCode;
return appCode != null && appCode.InstrumentCodes.Contains(parameter.ToString());
}
Небольшой пример:
Id | Code1 | Code3 | Code4
--------------------------------
123 | True | False | True
данных для строки 1: ApplicationCode.InstrumentCodes {code1, code4}
Существует способ, чтобы выяснить, индекс столбца или имя? Или есть другой способ решить эту проблему?
Каков ваш код XAML для привязки ListView? –
Привет, Мартин. Связывание выполняется в коде позади: AcnList.ItemsSource = repository.GetApplicationCodes(); GetApplicationCodes возвращает список –
Costin