要素のプロパティではなく、コレクション内に格納されているいくつかのプロパティをバインドしようとしているときに混乱しました。私はそれを正しく表現する方法さえわかりません...コードはよりよく説明するかもしれません:ここにタイプがあります(実際のコードではなく、私はそれを基本に短縮しました):
public class myType
{
public int P {get;set;}
}
public class myTypeCollection : ObservableCollection<myType>
{
public int Ptotal {get { return this.Items.Select(i=>i.P).Aggregate((c,t)=>t = t + c); }}
public int Pmin { get { this.Items.Min(i => i.P); } } //concept
public int Pmax { get { this.Items.Max(i => i.P); } } //concept
}
これらはテンプレート化されたコントロールで使用されており、そのXAMLは次のようになります:(コメントを追加して、できる限り明確にします)
<!-- myGridObject = new myTemplatedControl(); -->
<!-- myGridObject.DataContext = new myTypeCollection(); -->
<!-- NOTE: collection obviously is NOT empty in the real code -->
<sdk:DataGrid ItemsSource={Binding DataContext}>
<sdk:DataGridTemplateColumn Width="Auto">
<sdk:DataGridTemplateColumn.HeaderStyle>
<Style TargetType="sdk:DataGridColumnHeader">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<!-- ?????? write out Ptotal in the header of the column ??????? -->
<!-- This throws a binding-related ArgumentException -->
<TextBlock Text="{Binding ???? Ptotal ?????}" />
<!-- closing tags cut off -->
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding P}" />
<!-- closing tags cut off once more-->
{Binding P}
はアイテムのプロパティであるため、期待どおりに機能しますが、、などのP
コレクションのプロパティにアクセスするにはどうすればよいですか?Ptotal
Pmin
これをお読みいただきありがとうございます。不足している情報がある場合は、それを指摘して投稿します。