Sono un vero principiante nel modello MVVM. Sto provando a cambiare il backgound di una griglia sul clic del pulsante. Ho un xaml con una griglia contenente un pulsante e un ViewModel .cs da cui voglio cambiare lo sfondo della griglia sul clic del pulsante. Fino a quando non ho appena riesco a presentarsi un MessageBox quando ho cliccato ...MVVM modifica il colore di sfondo della griglia al clic
codice XAML:
<Window x:Class="WpfSimple.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfSimple"
Title="MainWindow" Height="150" Width="370">
<Window.DataContext>
<local:MainWindowViewModel/>
</Window.DataContext>
<Grid>
<Button Content="Click"
Height="23"
HorizontalAlignment="Left"
Background="Gray"
Margin="75.944,47.465,0,0"
Name="btnClick"
VerticalAlignment="Top"
Width="203"
Command="{Binding ButtonCommand}"/>
<!--What is necessary to add for changing grid color ? Commandparameter ?-->
</Grid>
MainWindowViewModel.cs codice:
namespace WpfSimple
{
class MainWindowViewModel
{
private ICommand m_ButtonCommand;
public ICommand ButtonCommand
{
get
{
return m_ButtonCommand;
}
set
{
m_ButtonCommand = value;
}
}
public MainWindowViewModel()
{
ButtonCommand=new RelayCommand(new Action<object>(ChangeBgColor));
}
public void ChangeBgColor(object obj)
{
/*HERE I WANT TO CHANGE GRID COLOR*/
}
}
}
Scusate per il mio cattivo inglese.
Cordiali saluti.
SÌ! Grazie mille Vadim Martynov! Non sono sicuro di aver capito lo scopo di "INotifyPropertyChanged Interface" perché non mi ha notificato nulla ... ma la tua risposta è stata molto utile. Cordiali saluti. – Chefty
@Chefty INPC è richiesto per il bindng dei dati. Senza di esso il tuo colore non cambierà quando cambierai proprietà in ViewModel. Inoltre, INPC è una caratteristica generale di associazione dei dati. Puoi leggere ulteriori informazioni su MSDN: https://msdn.microsoft.com/en-US/library/ms752347(v=vs.100).aspx –
Non posso aggiungere nuove risorse statiche al mio controllo, si tratta di un errore: " GridStateToBackgroundColorConverter non è supportato in un progetto WPF "È normale? – Chefty