Tôi là người mới bắt đầu thực sự trong mẫu MVVM. Tôi đang cố gắng thay đổi backgound của một lưới trên nhấp chuột của nút. Tôi có một xaml với một lưới có chứa một nút, và một ViewModel .cs từ nơi tôi muốn thay đổi nền của lưới trên nhấp chuột của nút. Cho đến khi có tôi chỉ thành công xuất hiện một MessageBox khi tôi nhấp ...Thay đổi màu nền của lưới MVVM khi nhấp vào
đang .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 mã:
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*/
}
}
}
Xin lỗi vì tôi tiếng Anh kém.
Trân trọng.
CÓ! Cảm ơn rất nhiều Vadim Martynov! Tôi không chắc chắn rằng tôi hiểu mục đích của "Giao diện INotifyPropertyChanged" bởi vì nó được thông báo cho tôi không có gì cả ... nhưng câu trả lời của bạn thực sự hữu ích. Trân trọng. – Chefty
@Chất lượng INPC được yêu cầu cho dữ liệu bindng. Nếu không có nó, màu của bạn sẽ không thay đổi khi bạn thay đổi thuộc tính trong ViewModel. Ngoài ra, INPC là một tính năng thông thường của ràng buộc dữ liệu. Bạn có thể đọc thêm về MSDN: https://msdn.microsoft.com/en-US/library/ms752347(v=vs.100).aspx –
Tôi không thể thêm tài nguyên tĩnh mới vào kiểm soát của mình, nó tạo ra lỗi: " GridStateToBackgroundColorConverter không được hỗ trợ trong một dự án WPF "có bình thường không? – Chefty