私はちょうど MVVM Light をいじっているだけで、理解できたと思いますが、問題があります。
データベース (SQLCE) のクラス、マッピングなどを生成する SQL Server CE ツールボックスを使用しています。テーブルの 1 つは Profile と呼ばれ、これをバインドできるプロパティとして使用したいと考えていました。これがViewModelの私のコードです
public class ProfileViewModel : ViewModelBase
{
private Profile profile; // Profile is the class created by SQLCE Toolbox for table mapping
public Profile UserProfile
{
get { return profile; }
set
{
profile = value;
RaisePropertyChanged("UserProfile");
}
}
public ProfileViewModel()
{
if (IsInDesignMode)
{
// Code runs in Blend --> create design time data.
UserProfile = new Profile()
{
Name = "NA",
Age = 22
}
}
else
{
// Code runs "for real"
UserProfile = GetProfile();
}
}
}
Expression Blend では、ViewModel は表示されますが、Profile プロパティは表示されないため、どこかで例外が生成されていると推測しています。
プロセスとしてブレンドをアタッチしようとしましたが、エラーは発生しませんでした。少し読んだ後、blend がデータベースに接続できないことがわかりました。そのため、DesignMode ではデータを作成する必要があります。やってみUserProfile = new Profile()
ましたが、まだデータベースを使用して作成しようとしていると思いますか?
編集:私が抱えている問題は、SQLCEの使用に関連していると思います。WPF と MS SQL で同様のことを試してみると、すべて正常に動作します。
編集 2: これは間違いなくデータベースに関連しています。上記のコードからパブリック プロパティ UserProfile を削除すると、他のすべてのプロパティ (コードには表示されていません) が Blend から表示されます。再度追加すると、何も表示されません。では、どうすればブレンド可能にできますか?