0
私は基本的に投稿されたコンバータhereを使用して、データ型を汎用に変更しました。ジェネリックコンバーターをXAML内で使用するにはどうすればよいですか?一般的なIValueConverter XAMLでのWPFの使用法?
public class ReverseListConverter<T> : MarkupExtension, IValueConverter
{
public ReverseListConverter()
{
}
private ObservableCollection<T> _reversedList;
public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
_reversedList = new ObservableCollection<T>();
var data = (ObservableCollection<T>)value;
for (var i = data.Count - 1; i >= 0; i--)
_reversedList.Add(data[i]);
data.CollectionChanged += DataCollectionChanged;
return _reversedList;
}
void DataCollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
var data = (ObservableCollection<T>)sender;
_reversedList.Clear();
for (var i = data.Count - 1; i >= 0; i--)
_reversedList.Add(data[i]);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
Converterは、私はちょうど
ItemsSource="{Binding Mails, Converter={tools:ReverseListConverter}}"
XAMLでの一般的なコンバータでこれを行う方法はありますが使用される一般的だった前に?
完全に真実ではありません。http://msdn.microsoft.com/en-us/library/ee956431.aspx –
@DanPuzey:私に言い換えることができます。 –
ああ、申し訳ありません、あなたは正しいです。私が投稿する前に、テストしておいてください(そして、それをすべて読んでください)。お詫び! (もしあなたがあなたの答えを編集するなら、私は-1を取り除くでしょう) –