Dường như có lỗi khi liên kết một số dữ liệu, ai đó có thể giúp tôi tìm ra lỗi ở đâu không, mặc dù tôi không thể tìm ra.
Thực sự không cần phải thể hiện nhiều ở đây, đây là Binding
, Tôi đã thử nghiệm nền bằng cách xóa nó và tô màu vào đó, nó hoạt động rất tốt.
biên tập:Nhưng không có màu nào được hiển thị sau khi liên kết!
Đây là lớp đặt màu, tôi đang sử dụng SolidColorBrush vì đó là điều mà thuộc tính Background mong đợi:
thông báo lớp công khaiObject: INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(tên chuỗi)
{
if (PropertyChanged != null)
{
PropertyChanged(cái này, new PropertyChangedEventArgs(name));
}
}
chuỗi riêng _icon;
tin nhắn chuỗi riêng tư;
chuỗi riêng _detail;
SolidColorBrush riêng tư _color1;
SolidColorBrush riêng tư _color2;
biểu tượng chuỗi công khai
{ nhận được { return _icon; } đặt { _icon = value; OnPropertyChanged("Biểu tượng" }}
Tin nhắn chuỗi công khai
{ nhận được { return _message; } đặt { _message = value; OnPropertyChanged("Message" } }
chuỗi công khaiChi tiết
{ get { return _detail; } đặt { _detail = value; OnPropertyChanged("Chi tiết" } }
công khai SolidColorBrush Color1
{ nhận được { return _color1; } đặt { _color1 = value; OnPropertyChanged("Color1" }
công khai SolidColorBrush Color2
{ nhận được { return _color2; } đặt { _color2 = value; OnPropertyChanged("Color2" }
thông báo công khaiĐối tượng thông báo mới (kiểu int, thông báo chuỗi, chi tiết chuỗi)
{
//Tạo thể hiện mới của đối tượng
notificationObject x = new notificationObject();
switch (type)
{
trường hợp 1:
//Gây tử vong
x.Icon = "";
x.Message = tin nhắn;
x.Chi tiết = chi tiết;
x.Color1 = SolidColorBrush mới(Color.FromArgb(0, 170, 60, 18));
x.Color2 = SolidColorBrush mới(Color.FromArgb(0, 238, 78, 16));
trả lại x;
trường hợp 2:
//Gây tử vong
x.Icon = "";
x.Message = tin nhắn;
x.Chi tiết = chi tiết;
x.Color1 = SolidColorBrush mới(Color.FromArgb(0, 170, 60, 18));
x.Color2 = SolidColorBrush mới(Color.FromArgb(0, 238, 78, 16));
trả lại x;
trường hợp 3:
//Trái phép
x.Icon = "";
x.Message = tin nhắn;
x.Chi tiết = chi tiết;
x.Color1 = SolidColorBrush mới(Color.FromArgb(0, 170, 60, 18));
x.Color2 = SolidColorBrush mới(Color.FromArgb(0, 238, 78, 16));
trả lại x;
case 4:
//Cảnh báo
x.Icon = "";
x.Message = tin nhắn;
x.Chi tiết = chi tiết;
x.Color1 = SolidColorBrush mới(Color.FromArgb(0, 241, 176, 24));
x.Color2 = SolidColorBrush mới(Color.FromArgb(0, 205, 152, 28));
trả lại x;
case 5:
//Cảnh báo
x.Icon = "";
x.Message = tin nhắn;
x.Chi tiết = chi tiết;
x.Color1 = SolidColorBrush mới(Color.FromArgb(0, 41, 161, 213));
x.Color2 = SolidColorBrush mới(Color.FromArgb(0, 36, 142, 184));
trả lại x;
}
//Không tìm thấy mã lỗi
x.Icon = "";
x.Message = "Không thể tìm thấy mã lỗi được yêu cầu!";
x.Chi tiết = "";
x.Color1 = SolidColorBrush mới(Color.FromArgb(0, 170, 60, 18));
x.Color2 = SolidColorBrush mới(Color.FromArgb(0, 238, 78, 16));
trả lại x;
}
}
Rõ ràng là tôi đã đặt DataContext của mình thành một phiên bản của lớp này và tôi có các ràng buộc khác mà tôi liên kết với Tin nhắn
thuộc tính và điều này hoạt động tốt, vì vậy tôi chắc chắn rằng nó phù hợp với kiểu dữ liệu mà nó bị ràng buộc.
Mã của bạn cố gắng tạo một mã hoàn toàn mới RắnMàuBàn Chải
đối tượng, cung cấp Màu1
giá trị thuộc tính như mới của Màu sắc
Thuộc tínhRắnMàuBàn chải
. Ngoài Màu1
Bản thân tài sản đó là RắnMàuBàn Chải
thay vì SolidColorBrush.Color
thuộc tính cần thiết Màu sắc
ngoài.
Theo tôi giải pháp rõ ràng nhất là bắt đầu trực tiếp từ Màu1
Cài đặt thuộc tính Lý lịch
tài sản:
Nếu vì lý do nào đó bạn thực sự cần một chiếc máy hoàn toàn mới RắnMàuBàn Chải
đối tượng, bạn phải sử dụng thực tế Màu sắc
Giá trị được khởi tạo. Ví dụ:
Tôi là một lập trình viên xuất sắc, rất giỏi!