Я создаю приложение в стиле внутреннего файлового портала в silverlight,
Мне нужно иметь возможность фильтровать файлы по категориям, используя флажки, как в pivotviewer:

Чтобы отобразить категории, которые я использую ItemsControl, и в настоящее время использую хакерский обходной путь для сохранения идентификатора категории ... чтобы файлы можно было добавлять и удалять соответствующим образом, когда что-то проверено или снято:
<ItemsControl x:Name="categoryList" ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="2">
<CheckBox Checked="categoryIncluded" Unchecked="categoryExcluded" Content="{Binding ID}">
<CheckBox.ContentTemplate>
<DataTemplate>
<!-- This is a hack, content is being used to store the id of the category -->
</DataTemplate>
</CheckBox.ContentTemplate>
</CheckBox>
<TextBlock Foreground="#FFC2BDBD" Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Это похоже на массивный взлом,
Как это обычно делается в серебряном свете?
(кстати, я пользуюсь услугами передачи данных RIA)