2

WPF XAML のコンボボックスに簡単にバインドできるように、変換DbSet<MyEntity>する値コンバーターを作成したいと考えています。ObservableCollection<MyEntity>私はそれがすべてのタイプで機能することを望みます。

私はこれまでにこれを試しました。

class DbSetToObservableCollectionConverter:IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        try
        {
            DbSet<T> d = (DbSet<T>)value; //How do I know what to put in place of T
            return new ObservableCollection<T>(d);
        }
        catch(Exception ex)
        {
            return value;
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

T は実際には型ではないため、これは機能しません。誰かが私に何をすべきか助けてくれますか?

4

2 に答える 2

1

コンバーターでこれを行わないでください。ViewModel で実行します。そうすれば、ViewModel はDbSet<T>( だけでなくobject) への厳密に型指定された参照を持ち、型が何であるかを知ることができTます。

于 2013-07-01T18:18:32.370 に答える
1

持つ:

 DbSet<Thread> Threads;

使用する:

ObservableCollection<Thread> Threads;            

 using (var db = new MyContext())
        {
            Threads =new ObservableCollection<Thread>(db.Threads);
        }
于 2020-09-11T06:32:12.003 に答える