ItemCount
принадлежит группе внутри представления коллекции, сгенерированного из этого тега.
например, если у меня есть список
AABBBC
И я группирую их, я получаю:
Группа A: ItemCount = 2Группа B: ItemCount = 3Группа C: ItemCount = 1
Весь смысл облака тегов заключается в привязке к этому самому свойству, потому что вы хотите визуализировать частоту использования определенного тега.
Чтобы ответить на ваши комментарии, настройка «голыми руками» должна выглядеть примерно так:
<ItemsControl ItemsSource="{Binding Data}">
<ItemsControl.Resources>
<vc:CountToFontSizeConverter x:Key="CountToFontSizeConverter"/>
</ItemsControl.Resources>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" Margin="2"
FontSize="{Binding Count, Converter={StaticResource CountToFontSizeConverter}}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Я предполагаю, что ваш класс объекта данных предоставляет свойства Name
и Count
, чтобы убедиться, чточто размер изменяется по мере того, как увеличивается число, которое класс объектов данных должен реализовать INotifyPropertyChanged
, это почти все, что нужно для этого.
public class Tag : INotifyPropertyChanged
{
private string _name = null;
public string Name
{
get { return _name; }
set
{
if (_name != value)
{
_name = value;
OnPropertyChanged("Name");
}
}
}
private int _count = 0;
public int Count
{
get { return _count; }
set
{
if (_count != value)
{
_count = value;
OnPropertyChanged("Count");
}
}
}
//...
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}