У меня есть список объектов, которые являются источником данных.Примерно так:
public class DataList
{
public List<DataItem> SomeItems;
public void RemoveItem(DataItem item)
{
SomeItems.Remove(item);
}
}
Очень просто.Теперь у меня есть XAML, который ссылается на этот источник данных.Примерно так:
<layout:Accordion ItemsSource="{Binding SomeItems}" SelectionMode="ZeroOrMore" HorizontalAlignment="Stretch"
ItemTemplate="{StaticResource SomeItemTemplate}">
...
, где шаблон SomeItemTemplate определен в App.xaml
<DataTemplate x:Key="SomeItemTemplate">
<Grid>
..
<Button Command={?} Content="Remove" CommandParameter="{Binding}">
</DataTemplate>
Как можно связать команду для ссылки на DataList.RemoveItem?Идея состоит в том, чтобы передать элемент в родительский класс (DataList), который знает все.Я могу определить этот метод (удалить) в самом классе DataItem, но в этом случае мне нужно передать (в конструкторе) родительский класс, потому что элемент ничего не знает о родительском.
Решение найдено.Смотрите здесь (http://msdn.microsoft.com/en-us/library/system.windows.data.relativesource%28v=vs.95%29.aspx)
Использование <Button x:Name="btnDeleteItem" Command="{Binding DataContext.RemoveItemCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"