私は、別のユーザーコントロールからdatacontextを設定したユーザーコントロールを作成しました。私はメイングリッドにこのusercontrolを挿入すると、正常に動作します。datatemplateと "メイン"グリッドのusercontrolの違い
<Grid>
<local:ShowListView DataContext="{Binding ShowListViewModel}"/>
</Grid>
しかし、私はこの
<UserControl.Resources>
<DataTemplate DataType="{x:Type showViewModels:ShowListViewModel}">
<local:ShowListView />
</DataTemplate>
</UserControl.Resources>
<Grid>
<ContentControl Content="{Binding CurrentView}"/>
</Grid>
のように、DataTemplateを介して、それを挿入したときには、このエラーがスローされます
データストアクエリに直接結合(DbSet、dbQueryタグ、DbSqlQuery、DbRawSqlQuery)サポートされていません。代わりに、DbSetのLoadを呼び出してローカルデータにバインドするなどして、DbSetにデータを設定します。第1の方法は問題なく動作しますが、二番目はエラーをスローなぜ
ShowListView制御は、この
<ListBox ItemsSource="{Binding Shows}" BorderBrush="Transparent"
HorizontalContentAlignment="Stretch">
と関連のviewmodel
public ObservableCollection<ShowModel> Shows { get; set; }
public ShowListViewModel()
{
using (var db = new MSDBContext())
{
var shows = (from s in db.Shows select s).ToList();
Shows = new ObservableCollection<ShowModel>(shows);
}
}
が含まれていますか? Datatemplateで動作するものを変更する必要はありますか?
:あなたは
ToList()
メソッドを呼び出すことによってこれを行うことができます。そして、それでも私はエラーを投げます。 'ToObservableCollection'メソッドはIEnumerableを受け取り、それをObservable Collection(IEnumarable引数を持つコンストラクタ経由)に変更します。 – CrookerToObservableCollectionメソッドを使用する代わりに、新しいObservableCollectionを作成するためにコンストラクタを使用するだけの場合はどうなりますか? – mm8
私はこのコンストラクタに気付かなかったので、私はこのメソッドを持っていました。メソッドはforeachを使っていました。私は同じ結果で直接(更新されたメインポストに見られるように)それを試しました。 – Crooker