私は他のリストから.distinctが設定されたリストを持っています。そして、これらのアイテムを取得し、コンボボックスを作成するためのチェックボックスを作成します。Wpf C#Change checkbox comboboxitem color + disable
いくつかのフィルタを実行した後、2番目のリストでこれらのコンボボックスの項目を検索する必要があります。存在しない場合は、項目を無効にして背景色を設定する必要があります。
// List to populate the combobox
public List<System.Windows.Controls.CheckBox> ListaCmbMnMe { get; set; }
//...
ListaCmbMnMe = new List<System.Windows.Controls.CheckBox>();
// ListaPendencia is populated from database MnMe is a column from it
foreach (string item in ListaPendencia.Select(p => p.MnMe).Distinct())
{
checkBox = new System.Windows.Controls.CheckBox();
checkBox.Content = item;
ListaCmbMnMe.Add(checkBox);
}
//...
// Just trying to change the properties to find out if it works
foreach (System.Windows.Controls.CheckBox item in ListaCmbMnMe)
{
item.IsEnabled = false;
item.Background = new SolidColorBrush(Color.FromRgb(102, 153, 255));
}
cmbMnMe.ItemsSource = ListaCmbMnMe;
私はxamlに特別なことは何もしていません。
色が変更されず、無効になっていません。
質問に表示されているように、ループの後にItemsSourceに割り当てていますか? –
また、ループにブレークポイントを置くと、デバッガのブレークポイントにヒットしますか? –
xamlを表示します。私はあなたがビジュアルツリーにCheckBoxesを追加していないと推測しています。 DataSourceコレクションであり、UI要素コレクションではないと思われるItemsSourceにコレクションを追加しました。 – loopedcode