私はC#とSilverlight for Windows Phoneを使用しています。XAMLのCanvas要素をコードビハインドのCanvasプロパティにバインドする方法はありますか。
ItemsSourceプロパティがObservableCollection observableCollectionOfItemsAにバインドされているListBox listBoxOfItemsAがあります。 ListBoxの各TypeAアイテムは、XAMLに示すように、ListBox.ItemTemplateを使用して描画されます。 Canvas要素に注目してください。それがなければ、すべてうまくいった。今、TypeAの各インスタンスに0以上のTypeBのインスタンスを関連付けました。 TypeBの各インスタンスはHighlightColorを定義します。 ListBox内の各TypeA項目に、それに関連付けられたすべてのTypeB項目のHighlightColorを表示する方法が必要です。私は、各ListBox項目に薄いCanvas要素を追加し、0以上の領域で水平方向に分割する(0は黒い背景を残す)ことを考えていました.TypeBのインスタンスと同じ長方形がCanvasにペイントされますListBoxアイテム(すべての長方形の幅の合計が一定になるように)
質問:「????」で何を書いてください。私はCanvasプロパティ(TypeA)をListBox.ItemTemplateのCanvas要素にバインドできますか?
ありがとうございます。
編集20120406_0202:各タイプAのインスタンスを同時にに複数のタイプBのインスタンスにマッピングすることができます。たとえば、各タイプAは、(あるアカウントから別のアカウントへ、特定の日付に、ある種のカテゴリに属する)金銭の動きであり、それぞれのタイプBは、それぞれのタイプAが満たすことができる条件の集合であるたとえば、その日付がある範囲内にあり、その宛先アカウントが特定の範囲に等しいなど)。 TypeAごとに、条件のセットが一目でわかるようにしたい。満足している各セットは追加の色で表示されます。
public class TypeA
{
public int Id { get; set; }
public string Name { get; set; }
public Canvas CanvasForItemsB {...} // I would like something like this, here, and to bind it to the Canvas element in the XAML.
}
public class TypeB
{
public SolidColorBrush HighlightColor {...}
}
ObservableCollection<TypeA> observableCollectionOfItemsA;
listBoxOfItemsA.ItemsSource =observableCollectionOfItemsA;
<ListBox x:Name="listBoxOfItemsA">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Id, Mode=OneWay}" />
<TextBlock Text="{Binding Name, Mode=OneWay}" />
<Canvas ????="{Binding CanvasForItemsB, Mode=OneWay}" Width="480" Height="10" Background="Black" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
KodeKreachorでは、listBoxOfItemsAの各項目は、1つ以上の色にマップされている可能性があります。 – Telaclavo
クールなので、リストアイテムのビューモデルの背景色プロパティのブラシカラー値を変更できるだけで、そのビューには更新されたカラーが反映されるようです。 – KodeKreachor
私は同時に複数の色を意味します。 – Telaclavo