ObservableCollection에 TextBlock.Text를 바인딩하여 Count() 또는 Sum (x => x.price)을 얻을 수 있습니까?Textblock.Text를 Count 또는 Sum 메서드에 바인딩하는 방법은 무엇입니까?
productList= new ObservableCollection<productClass>();
<TextBlock Name="SumPrice" Text="{Binding productList.Sum(x=>x.price) ??}" />
<TextBlock Name="CountProducts" Text="{Binding productList.Count() ??}" />
고마워요!
@EDIT :
뷰 모델 :
public class ParagonClass : INotifyPropertyChanged
{
(...) private objects(...)
//public objects start
public int PdID
{
get
{
return _pdID;
}
set
{
_pdID = value;
NotifyPropertyChanged("PdID");
}
}
//public objects end (there is lot of objects, so I didn't copy them all)
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
myWindow.xaml
<ListView Grid.Row="1" Name="productsLV" >
<ListView.Resources>
<BooleanToVisibilityConverter x:Key="Boolean2Visibility" />
</ListView.Resources>
<ListView.ItemTemplate>
<DataTemplate>
(...)
리스트 뷰는 itemssource 같이 ObservableCollection에 위해 바인더 제본 가지고
myWindow.xaml.cs
productsList = new ObservableCollection<ParagonClass>();
productsLV.ItemsSource = productsList;
내 ObservableCollection이 공개 창으로 생성됩니다. 합계를 얻고 내 수업에서 계산하려면 그 컬렉션을 가져올 필요가 있지만 정적이 아닌 것은 불가능하다고 생각합니다. 그런 다음
public int Sum { get { return productList.Sum(x => x.Price); } }
당신이 될 수 바인딩 :
내가 추측해야하는 값을 반환 할 수있는 속성을 만들 수 있습니다 (가능한 문제는 http://stackoverflow.com/questions/978473/wpf-how-to-bind-to-a-nested-property를 참조하십시오) – cubitouch
확인 이해해. 하지만 내 Datamodel ObservableCollection을 포함하지 않는 클래스입니다. 나는 다른 창에서이를 생성하므로 실제로 productList에 액세스 할 필요가 없습니다. 마지막 코멘트에서 대답했듯이 - 오히려 정적 ObservableCollection을 만들고 datamodel 또는 다른 방법으로 count/sum을 사용해야합니까? – user13657
ObservableCollection이 초기화 된 경우 값을 처리하는 속성을 사용하고 0 또는 -1을 반환하지 않으면 값을 반환 하시겠습니까? (우리가 당신을 도울 수있는 모델의 소스 코드를 보여주십시오) – cubitouch