Я использую шаблон Prism для MVVM в своем приложении WP7. В моей ViewModel я реализовал два свойства:
private IconVO _selectedIcon;
public IconVO SelectedIcon {
get {
return _selectedIcon;
}
set {
_selectedIcon = value;
SelectedIconCanvas = _selectedIcon.Icon;
RaisePropertyChanged(() => this.SelectedIcon);
}
}
private Canvas _selectedIconCanvas;
public Canvas SelectedIconCanvas {
get {
return _selectedIconCanvas;
}
set {
_selectedIcon = value;
RaisePropertyChanged(() => this.SelectedIconCanvas);
}
}
где IconVO (в нем хранится информация об одном значке, загруженном из некоторого файла XML):
public class IconVO {
public string Name { get; set; }
public Canvas Icon { get; set; }
}
SelectedIcon в настоящее время выбран IconVO из ObservableCollection<IconVO>
(коллекция привязана к ListPicker).
SelectedIconCanvas - это свойство, которое хранит Canvas
из SelectedIcon.Icon
.
Когда я выполняю этот код, приложение выдает ArgumentException -> неверный параметр в этой строке:
RaisePropertyChanged(() => this.SelectedIconCanvas);
Что не так с этим кодом?
Спасибо, fl4izdn4g
РЕДАКТИРОВАТЬ 01-02-2012
Вот XAML, как вы просили:
<Border Grid.Row="1" Background="{Binding SelectedColor}" >
<ContentControl Margin="40,20,300,20" Content="{Binding SelectedIconCanvas}">
<ContentControl.ContentTemplate>
<DataTemplate>
<ContentPresenter />
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
</Border>
Я пытался заменить ContentControl на:
<Button Content="{Binding SelectedIconCanvas}"/>
но это не помогло.