データベースからのデータを含むリストがいくつかあります。リストボックスはグラフのフィルターとして機能し、リストボックスの外観は、他のリストボックスで選択されているものに応じて変化する必要があります。
これは、私が具体的にやろうとしていることの簡単な例です:
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 Name="lstRegionsFilter">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Path=RegionName}"
Tag="{Binding Path=RegionID}"
Click="CheckBox_Click"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
リストボックス内の項目をクリックすると、グラフを表示するデータをフィルタリングするフィルターのリストに追加されます。たとえば、[地域] で [ヨーロッパ] が選択されている場合、ヨーロッパに属するすべての国は、国のリストボックスで異なる色 (青など) で表示される必要があります。
したがって、コードでは、国リストボックスのチェックボックスをループし、そのチェックボックスに表示/タグ付けされた値が選択された地域に属する国であるかどうかに応じて、その前景色を何かに設定したいので、通常は foreach ループ。ただし、リストボックス内のアイテムは地域タイプなので、基になるチェックボックスにアクセスするにはどうすればよいですか? これは私が知っているかなり基本的なことですが、それは私を夢中にさせます!