Lorsqu'un ValueConverter est utilisé dans le cadre d'une liaison, l'un des paramètres de la fonction Convert
est un objet System.Globalization.CultureInfo
.CultureInfo sur une implémentation de IValueConverter
Quelqu'un peut-il me dire d'où provient cet objet de culture?
J'ai du code qui met en forme une date basée sur cette culture. Lorsque j'accède à mon contrôle silverlight hébergé sur ma machine, il met en forme la date correctement (en utilisant le format d/MM/yyyy, qui est défini comme format de date courte sur ma machine). Lorsque j'accède au même contrôle hébergé sur un serveur différent (à partir de mon ordinateur client), la date est au format MM/jj/aaaa hh: mm: ss - ce qui est totalement faux. Par coïncidence, les paramètres régionaux sur le serveur sont définis sur le même que mon ordinateur client.
C'est le code pour mon convertisseur de valeur:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is DateTime)
{
if (parameter != null && !string.IsNullOrEmpty(parameter.ToString()))
return ((DateTime)value).ToString(parameter.ToString());
else
return ((DateTime)value).ToString(culture.DateTimeFormat.ShortDatePattern);
}
return value;
}
essentiellement, un format spécifique peut être spécifié comme paramètre de conversion, mais s'il est alors le modèle de date courte de l'objet de la culture est utilisée .
Merci, le problème est résolu, voir ma modification sur le post. Le serveur ne devrait avoir aucune influence sur la culture, d'où ma confusion (j'avais mis à jour le mauvais serveur ce matin). J'ai marqué le vôtre comme la réponse car elle est plus techniquement correcte selon la question :) – slugster