與您CollectionView
在的地方,你也許能夠綁定到Groups
財產,我從來沒有使用的,會嘗試一下,如果可能的話澄清...
編輯:還好吧,這裏有一個方法來做到這一點:
您將數據綁定到需要到b E中的CollectionView.Groups
,則CollectionView
應該這樣定義:
CollectionView view = (ListCollectionView) CollectionViewSource.
GetDefaultView(LabelData);
view.GroupDescriptions.Add(new PropertyGroupDescription("Name"));
然後你就可以綁定到的代碼CollectionViewGroup
各自的屬性,你需要的可能是:
ItemCount
Name
這就是說你的原始綁定應該管用。
注意:您只有一個值傳遞給變頻器,ItemCount中,因此應該是這樣的:
public class CountToFontSizeConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
{
const int minFontSize = 6;
const int maxFontSize = 38;
const int increment = 3;
if ((minFontSize + (int)value + increment) < maxFontSize)
{
return (double)(minFontSize + (int)value + increment);
}
return (double)maxFontSize;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
編輯:進一步澄清...
只需添加CollectionView
到您ViewModel
作爲一個屬性,在其構造創建它:
public class TagCloudViewModel//:INotifyPropertyChanged
{
public ObservableCollection<AggregatedLabelModel> AggregatedLabels
{get; set;}
public CollectionView AggregatedLabelsView {get; set;} // <-This...
public TagCloudViewModel()
{
var data = new DataAccess();
AggregatedLabels = data.GetData();
//...and this:
AggregatedLabelsView = (ListCollectionView)CollectionViewSource.
GetDefaultView(AggregatedLabels);
AggregatedLabelsView.GroupDescriptions.Add(
new PropertyGroupDescription("Name"));
}
}
然後綁定到AggregatedLabelsView.Groups
。
我已經這樣做了,這只是我的XAML的片段 - 對不起,我沒有澄清。 – Ben 2011-02-08 21:07:23