問題タブ [blendability]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - ネストされたビューを定義するための標準的な規則は何ですか: MVVM Light でのビューモデル マッピング
そのため、従来の MVVM の例では、View Models を Views にマップするために DataTemplate 定義が使用されています。MVVM Light フレームワークでこれを行う標準的な方法は何ですか?マッピングはどこに配置する必要がありますか? 以下は、私が現在行っていることと私が話していることの例です。ブレンド可能性は私にとって重要です!
メイン ウィンドウ:
上記のコードでは、私の RootViewModel クラスには、同じプロパティ名を持つクラス ApplicationManagementViewModel のインスタンスがあります。
ResourceDictionary "ViewMappings.xaml" を参照して、ビュー モデルをビューとして表現する方法を指定します。
ViewModelLocator を使用してこのようなことを行う必要がありますか? ビューモデルのコレクションはどうですか?
silverlight - ViewModelでDataServiceCollectionを使用するときに「ブレンド可能性」を実現する方法
SilverlightクライアントでoDataエンドポイントを使用することを検討しています。当然、私はMVVMを実行しており、プロジェクトを素晴らしく「ブレンド可能」にしたいと考えています(つまり、デザインモードでは、oDataエンドポイントの代わりに静的データをクリーンに使用できる必要があります)。
今問題に。ViewModelsでDataServiceCollectionを使用したいのですが、BeginExecute / EndExecuteなどをあまり気にすることなく、バインド可能なコレクションを作成できるからです。
それでは、いくつかのコードを見てみましょう。私のモデルインターフェースは次のようになります。
そのインターフェースのoDataエンドポイントの実装:
そして、「ブレンド可能な」設計時の実装:
ただし、ViewModelコンストラクターでこの最後のものを使用しようとすると、次のようになります。
例外が発生します:
DataServiceCollectionでLoadAsyncメソッドを呼び出す場合は、型指定されたDataServiceQueryオブジェクトのみを指定できます。
まず、この場合、LoadAsyncの入力パラメーターをDataServiceQueryとして入力してみませんか?
第二に、私が達成しようとしていることを行うための「適切な」方法は何ですか?
wpf - d:DataContext とのブレンド可能性。私は何が欠けていますか?
アプリケーションで Blendability を実現するには、ビュー ファーストのアプローチが最善の方法であるというガイダンスやアドバイスがまだたくさんあるように感じます。しかし、d:DataContext、d:DesignData、および d:DesignInstance を使用すると、ビューとビューモデルがどのように接続されているかに関係なく、ブレンド可能性の問題を解決するのは簡単ではありませんか?
DesignInstance を使用すると、デザイナーで使用する具体的な ViewModel タイプを選択するだけで、まるでビュー ファーストの構成を持っているかのようになります。実際、DesignInstance を使用すると、IsInDesignMode バックフリップを実行したり、実際のビューモデルでデザインをサポートするためだけにデフォルトのコンストラクターを作成したりするよりも、懸念事項をより適切に分離できます。ビューモデル タイプまたは共通インターフェイス タイプから継承して、単純な「デザイナー」を作成できます。ビューモデルであり、デザイナーに完全に制約されています。XAML で宣言的に偽のビューモデルを作成するだけで済みます。
確かに、上記のアクティビティを実行するには多少の初期費用がかかりますが、結果として、デザイン データを実際のビューモデルと混合することによって得られるものよりも、実際には明確に分離されます。足りないものはありますか?ブレンド可能性が依然として大きな懸念事項であるのはなぜですか?
silverlight - app.xaml で定義された Silverlight ViewModelLocator には、DI コンテナーへの参照が必要です
ビューが正しいViewModelにデータバインドするために使用するapp.xamlで定義しているViewModelLocatorクラスがあります。
Prism と Unity を使用しており、ViewModelLocator クラスにはアプリケーション レベルの Unity コンテナーへの参照が必要です。
IUnityContainer を ViewModelLocator の ctor に挿入したかったのですが、ViewModelLocator はパラメーターなしの ctor を使用して app.xaml からインスタンス化されます。
アプリケーション レベルのコンテナーにアクセスするための推奨される方法はありますか? アプリ内の他のすべてのクラスについては、ctor インジェクションを使用してグローバル コンテナーを取得するだけです。
ViewModelLocator に対して現在行っていることは、コンテナーを格納するために BootStrapper クラスで静的変数を定義することです。UnityBootStrapper の CreateContainer メソッドをオーバーライドしてコンテナーを作成します。
次に、ViewModelLocatorクラスで BootStrapper.DIContainer プロパティを参照してビューモデルを登録します。
これは正常に動作しますが、ブートストラップでこの静的プロパティを参照する必要があるアプリケーション内の唯一の場所であり、可能であれば削除したいと考えています。
ありがとうマイケル
sql-server-ce - 設計時のデータ ソースでこの特定のクラスを使用すると、すべての設計時のバインディングが壊れる理由を誰か思いつきますか?
このクラスは、SQLMetal.exe を使用して生成しました。実行時に非常にバインド可能ですが、設計時にこのクラスを使用すると、設計時のすべてのブレンド バインディングが無効になります。
私は MVVM-Light フレームワークを使用しており、WP7 用のアプリを構築しています。
このクラスのインターフェイスを抽出し、このインターフェイスを実装する単純な POCO を作成し、その単純な poco を設計時のデータ ソースで使用すると、すべてのバインディングが有効になります。
以下は、SQLMetal.exe によって生成されたクラスです。
wpf - Wpf RelativeSource Binding を使用すると Blendability が壊れる
次のシナリオがあります... ItemsControl を含むウィンドウがあります。Window の DataContext に ViewModel を指定します。ItemControl の ItemTemplate に DataTemplate を指定します。DataTemplate では ComboBox を使用し、ComboBox の ItemsSource では、それを含む Window の DataContext への RelativeSource Binding を使用します。ランタイム中はすべて正常に動作し、Binding は正しく解決されますが、デザインタイム中、Cider は ItemSource がバインドされているウィンドウのビューモデルを取得できません。
これが私のコードです(上部のxml名前空間宣言を省略しましたが、私のコードには含まれています):
したがって、基本的に上記のコードから、Path=DataContext.AvailableGenres は設計時には解決できませんが、実行時には正しく解決されます。
私が何か間違ったことをしているのか、それとも設計時に RelativeSources へのバインディングを解決できないという Wpf xaml パーサーの問題なのか、誰かが知っていますか?
wpf - Visual Studio のデザイナーがデザイン時のサポートを開始する理由
モデル、ビューモデル、ビューを含む ac# コントロール ライブラリがあります。いつものようにすべてを接続しますが、ビジュアル スタジオのデザイナー (ブレンド可能性) からデザイン時のフィードバックは得られません。
アセンブリを WPF プロジェクトにロードし、ビューをカスタム ユーザー コントロールとして含めると、設計時のフィードバックが得られます。残念ながら、ビューは別のアプリに存在するため、この WPF プロジェクトはテスト シェルにすぎません。
クラス ライブラリでブレンド可能性 (設計時) をサポートできれば、開発パイプラインにとってより効率的でしょうか? デザイン時のデータ コンテキストを表示するために Visual Studio を起動する理由は何ですか?
d:DataContext="{d:DesignInstance dd:DesignViewModel}"
クラスライブラリでも使用しています。クラス ライブラリにデザイン時のデータがありません。
sql-server-ce - ブレンド性を維持しながら、wp7マンゴーでlinq2sqlデータベースを使用するにはどうすればよいですか?
MVVMLightとSQLServerCEをデータベースとして使用してWP7アプリケーションを作成しようとしています。これを実現するために、sqlmetal.exe(1)を使用してデータコンテキストを生成しました。
携帯電話でアプリケーションを実行すれば、これは問題なく機能します。しかし、デザインタイムデータを表示しようとするとDataContext
、デザインタイムコードにのインスタンスを作成できません。これはできますか?私が試したもう1つの方法は、のインスタンスを作成することでしたTable<MyDataObject>
が、System.Data.Linq.Tableにはコンストラクターがありません。
したがって、私の質問は、DataContext
コードから自分のインスタンスを作成することが可能かどうか、または設計時のデータを失うことなくデータベースとインターフェイスする別の方法があるかどうかです。
(1)実際には、ライブラリプロジェクトを使用して別の方法を使用して、デザイナーファイルを視覚的にデザインしてWP7プロジェクトにコピーできるようにしました。私が正しければ、結果は同じになります。