J'ai un contrôle lié à une propriété d'index d'un objet qui implémente INotifyPropertyChanged.Liaison de données à la propriété d'index
Le problème est, je ne sais pas comment notifier le signal de modification de propriété pour cette chaîne d'index particulier.
On m'a dit que je peux utiliser OnPropertyChanged (« ») d'informer l'objet entier ont besoin d'être changé.
Mais ce dont j'ai besoin est quelque chose comme OnPropertyChanged ("Une chaîne de propriété d'index").
Y a-t-il un moyen de le faire?
Merci beaucoup.
ps:
Ce que je suis en train de faire est d'appliquer modèle MVVM. J'utilise une classe viewmodel pour envelopper un objet POCO normal. Donc, quand je lie, je lie à la [propriété d'index], de sorte que je peux notifier changé. Cette méthode me sauve de:
- envelopper l'objet POCO de domaine interne pour toutes les propriétés dont j'ai besoin.
- notifier la propriété modifiée dans chaque propriété enveloppée.
CODE
public class ViewModelEx<T_Self, T_Core> : ViewModelEx<T_Self> where T_Self : ViewModelEx<T_Self, T_Core>
{
private static Type _s_coreType = typeof(T_Core);
private static Dictionary<string, PropertyInfo> _s_corePropInfos = new Dictionary<string, PropertyInfo>();
private static PropertyInfo GetPropertyInfo(string prop)
{
if (_s_corePropInfos.ContainsKey(prop) == false)
_s_corePropInfos.Add(prop, _s_coreType.GetProperty(prop));
return _s_corePropInfos[prop];
}
public T_Core Core { get; set; }
public object this[string propName]
{
get
{
return GetPropertyInfo(propName).GetValue(Core, null);
}
set
{
GetPropertyInfo(propName).SetValue(Core, value, null);
IsModified = true;
//RaisePropertyChanged(propName);
RaisePropertyChanged("");
}
}
public R Val<R>(Expression<Func<T_Core, R>> expr)
{
return (R)this[Core.GetPropertyStr(expr)];
}
public void Val<R>(Expression<Func<T_Core, R>> expr, R val)
{
this[Core.GetPropertyStr(expr)] = val;
}
Voulez-vous dire ce [chaîne] ou ce [int]? – benPearce
Je veux dire ceci [chaîne]. Quelle est la différence concernant la liaison de données/notification de changement entre cette [chaîne] et ce [int]? – GaryX
Je finis par ajouter des wrappers de propriétés pour chacun des proeprty de modèle de domaine. Il s'avère qu'il n'y a pas trop de travail. Et cela évite tous les problèmes. Quoi qu'il en soit, c'est un effort unique. – GaryX