У меня есть несколько списков, содержащих данные из db. Списки отображаются в качестве фильтров для диаграммы, и появление списков должно меняться в зависимости от того, что выбрано в других списках.Установите цвет текста переднего плана элементов флажка в списке wpf
Вот упрощенный пример того, что я пытаюсь сделать, а именно:
Class Region
{
public int RegionID { get; set; }
public string RegionName { get; set; }
}
Class Country
{
public int CountryID { get; set; }
public string CountryName { get; set; }
public int RegionID { get; set; }
}
private void fillListBoxes()
{
List<Region> allRegions = getRegions();
lstRegionsFilter.ItemsSource = allRegions;
}
Страна, очевидно, принадлежит к региону, и у меня есть, например, порты, которые затем расположенные в стране и т.д. и т.д.
Все элементы ListBox являются флажками, определенные как это:
<ListBox Name="lstRegionsFilter">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Path=RegionName}"
Tag="{Binding Path=RegionID}"
Click="CheckBox_Click"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Как элементы в любом ListBox нажатия они добавляются в список фильтров, которые будут Filte r данные, отображающие график. Так, например, если «Европа» выбрана в Регионах, тогда все страны, принадлежащие Европе, должны быть по-разному окрашены в список для стран, например синий.
Так что в коде я хочу Переберите флажков в стране-ListBox и установите цвет переднего плана на то, в зависимости от того, если отображаются значение/привязанные к этому флажку является страной, которая принадлежит к выбранной области, так как правило, в цикле foreach. Однако элементы в списке имеют тип Region, и как я могу получить доступ к базовому флажку? Это должно быть довольно простой материал, который я знаю, но он меня заводит!
Привет Миклош и благодарю вас за быстрый ответ. К несчастью, это не совсем то, что я ищу. Мне нужно изменить цвет текста элементов в списке, но они не выбираются/не проверяются. Цвет необходимо изменить, но без проверки флажков. Я попытался объяснить это дело здесь http://i48.tinypic.com/1zh3czc.png – ardal
Собственно, это именно то, что вам нужно. Связывание не основано на проверке страны, она основана на том, проверен ли родительский регион страны. Вот почему он называется 'IsParentChecked'. Вы должны попытаться реализовать то, что он предложил. – Alain
иногда свойства readonly не обновляются, даже если на них поднят NotifyPropertyChanged. объявлять как обычное свойство, если экспериментировать с проблемами обновлений. – GameAlchemist