Привязка данных WPF MVVM с параметрами?C#

Место общения программистов C#
Ответить
Anonymous
 Привязка данных WPF MVVM с параметрами?

Сообщение Anonymous »

Поэтому на мой предыдущий вопрос, кажется, нет ответа, поэтому я попробую предложить свое собственное.

Функциональность, которую я ищу, заключается в том, чтобы сетка данных меняла передний план (или даже фон) ячейки, когда данные в этой ячейке были отредактированы. >

Моя модель выглядит примерно так:

Код: Выделить всё

Public class Shipment : PropertyChangedBase
{
#region Fields
private ShippingService.Shipment.lbnshipment _localShipment;
private ShippingService.Shipment.lbnshipment _originalShipment;
#endregion

#region Properties
public int ShipmentID
{
get { return _localShipment.ShipmentID; }
set
{
if(value != _localShipment.ShipmentID)
{
_localShipment.ShipmentID = value;
NotifyOfPropertyChange(() => ShipmentID);
}
}
}

public Shipment(ShippingServices.Shipment.lbnShipment localshipment)
{
_originalShipment = localshipment;
_localShipment = localshipment;
}

//This Section is my best guess solution, but it just a guess
public Color HasChanged(string Property)
{
switch(Property)
{
case "ShipmentID":
if(_localShipment.ShipmentID != _originalShipment.ShipmentID)
{
return Colors.Red;
} else {
return Colors.Black;
}
break;
}
}
}
Очевидно, я удалил большую часть свойств, и HasChanged сейчас является чистым мифом, но я надеюсь, что каким-то образом я смогу связать DataGridTextColumn Foreground (или, надеюсь, фон) этому методу HasChanged и каким-то образом передать ему, какой параметр в данный момент вызывает метод.
Я надеюсь, что у меня есть какой-нибудь умный способ, позволяющий привязке определять, какое свойство изменилось, во многом так же, как IDataErrorInfo позволяет привязывать проверку для каждого свойство. Хотя я понятия не имею, как это на самом деле работает в фоновом режиме.

Подробнее здесь: https://stackoverflow.com/questions/217 ... parameters
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»