Я делаю приложение WPF по шаблону MVVM, где пользователь щелкает элементы дерева (гиперссылки, состоящие из имен цветов, текст имени с соответствующим передним планом), чтобы изменить фон всего окна. Я делаю это с помощью команды relay, но пользовательский интерфейс недопустим в модели представления, где я пишу команду.
Дерево с именами цветов в XAML:
<TreeView Name="tree" ItemSource="{Binding colorList, Mode=TwoWay}" Background="Transparent">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemSource={Binding Children}>
<TextBlock><Hyperlink Command={Binding ColorChangerCommand} Foreground={Binding Foreground} TextDecorations="None"><TextBlock Text={Binding Name}/></Hyperlink></TextBlock>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
<TreeView>
Команда в моем представлении Модель:
public RelayCommand ColorChangerCommand{ get; set;}
public TreeViewModel() //Constructor of the View Model
{
ColorChangerCommand= new RelayCommand(ChangeColor);
}
public void ChangeColor(object sender)
{
this.Background= (sender as TreeViewItem).Foreground;
}
Команда работала нормально в простом программном коде, но теперь не в модели представления.Помогите пожалуйста?