問題タブ [viewmodel]
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 - WPF - ページ/ウィンドウ レベルで ViewModel の変更に対応する最良の方法
私は XBAP を開発していますが、簡単な要件があります。
DataContext
メイン ページ全体の は、 my のインスタンスに設定されますUserViewModel
。UserViewModel
には、「 」、「 」、「」などの値を持つ列挙型である がDependencyProperty
呼び出されます。 AuthenticationState
Authenticated
NotAutheticated
AuthenticationFailed
ここで、ページ上のさまざまな要素を非表示/表示して、この値の変更に対応する必要があります。
それを行うための最良の方法は何ですか(そしてどこですか?)
asp.net-mvc - ASP.netMVC-ViewModelオブジェクトとセッション変数
次のような状況があるとします。
- ページ付けされたビューには、連絡先/インデックス/ページ/2のルートを持つ連絡先のリストが表示されます。
- ビューは、ページ付けされたデータViewModelオブジェクトを取得します。
- ビューは、連絡先カテゴリなどのフィルタプロパティもViewModelから取得します。
ユーザーが連絡先/インデックスページに戻ったときに同じページ番号とフィルターが適用されるように、ページ番号とフィルターのプロパティをどこかに保存したいと思います。
これらのプロパティをSession変数内に格納することは良い習慣ですか?ViewModelはこれらのセッション変数を処理する必要がありますか?
この種の状況に取り組む別の方法はありますか?
wpf - ViewModel 間の通信方法
TabPage1 と TabPage2 を持つ TabControl があります。TabPage1 には、TabPage11 と TabPage12 の 2 つのアイテムを持つ別の TabControl1 があります。
TabPage2 には、TabPage21 と TabPage22 の 2 つの項目を持つ別の TabControl2 があります。
各項目 (TabPage11、TabPage12、TabPage21、および TabPage22) には、独自の View (UserControl の形式) と ViewModel があります。各ビューに dataGrid があります。
ここで、各 dataGrid に ExportToExcel 関数を実装したいと思います。各 tabItem に ExportToExcel ボタンを配置できますが、見栄えがよくありません。したがって、メインウィンドウにボタンを1つ配置して、ユーザーがボタンをクリックすると、選択したtabItemのdataGridが処理されます。
問題は、mainWindow のボタンが、
選択した tabItem の ViewModel にそれをエクスポートするように指示する方法を認識していないことです。
助言がありますか?前もって感謝します!スティーブ
.net - CustomViewData への最良の方法は?
カスタム プロパティを横幅の ViewDataDictionary に追加する最も実用的な方法は何ですか?
簡単なケースを想定してみましょう:
最初に頭に浮かぶのは、カスタム クラスとアプリケーション ベース コントローラーでの "new" の使用です。
ビューでもカスタム ビュー データ ディクショナリを使用するには、同じプロパティを持つ対応する CustomViewPage も作成する必要があると思います。
2 番目に思い浮かぶのは、ViewDataDictionaryExtensions クラスを作成することです。
第三に、「View Model」を使用します。View Models に関する私の欠点は、少なくとも前の 2 つのオプションと比較すると、常に 1 つを作成して View に渡すことです。
本当の目標は、各アプリケーションが、そのアプリケーションの目的に適した ViewData の主要なプロパティ セットを持つようにすることです。私はディクショナリ キーに頼るのをためらう傾向があります。他の開発者が実際のプロパティを使用して、設定するデータを知ることができると便利です。さらに、キーは簡単にスペルを間違えることがあります。
3 つの方法はすべて、仕事を成し遂げます。他の人は何をしましたか?
asp.net-mvc - MVCカスタムViewModelと自動バインディング
私は次のように定義されたカスタムViewModelを持っています:
Edit POSTハンドラーには、次のエントリがあります。
編集フォームは次のように設定されます。
そして、何が起こっているのかわからないまま、次のエラーが発生します。このオブジェクトにパラメーターなしのコンストラクターが定義されていません。確かに私はここで本当に明白な何かを見逃しています。背景として、GETは完全に機能し、SelectListからのドロップダウンを期待どおりに表示します。カスタムビューモデルへの自動バインドが失敗していると思いますが、どうしたらよいかわかりません。
asp.net-mvc - ASP.NET MVC でベース コントローラーを使用して厳密に型指定されたマスター ページを作成する方法
NerdDinnersの例に従って、厳密に型指定されたマスター ページを作成することに興味があります。これを実現するために、マスター ページのデータを取得するベース コントローラーを使用します。他のすべてのコントローラーは、このクラスを継承します。同様にViewModels
、マスター ページとその他のビューについても同様です。ビューViewModel
クラスは、マスター ページのViewModel
.
質問
ViewModel
子コントローラーは、マスター ページ自体に関連するプロパティを設定せずに、マスター ページのデータがビューに渡されるようにするにはどうすればよいですか?
マスター ページには多数のボタンが表示されます。これらのボタンは XML ファイルで決定されるため、作成するButtons
クラスになります。
MasterPage ViewModel コード スニペット
意見ViewModel
ベースコントローラー
ビューのコントローラー:
マスター ページは を継承しSystem.Web.Mvc.ViewMasterPage<Site1.Models.MasterViewModel>
ます。
ビューは を継承しSystem.Web.Mvc.ViewMasterPage<Site1.Models.View1ViewModel>
ます。
asp.net-mvc - ASP.NET MVC - マスター ページとビュー ページの異なるモデル
厳密に型指定されたマスター ページがありますが、その子ページの一部に別の型を使用したいと考えています。
たとえば、マスターページでは...
Client はすでに複合オブジェクトであるため、一部の子ページでは同じモデルを維持し、メンバー オブジェクトを参照するだけです。しかし、他のページでは、別のモデル (たとえば、Customer モデルを扱う子ページなど) を扱っているため、そうしても意味がありません。
マスター ページには引き続き Client モデルが必要ですが、子ビューは完全に別のモデルで動作します。問題は、コントローラーでは、ビューに 1 つのオブジェクト モデルしか渡すことができないことです。あるモデルをマスターに渡し、別のモデルをビューに渡す方法はありますか? ありがとう!
wpf - このビューがこのViewModelに正しくバインドされないのはなぜですか?
DataObjectProviderなしでビューをビューモデルにバインドしようとしています。
次のコードはエラーなしで実行されますが、私のリストボックスは空です。
私が知る限り、私は正しく:
- ビューのDataContextをViewModel自体に設定します(
DataContext = new CustomersViewModel();
) - ViewModelで顧客オブジェクトを公開します(
public static ObservableCollection<Customer> GetAll()
) - ListBoxを顧客オブジェクトにバインドします(
ItemsSource="{Binding GetAll}"
)
ここで欠けている構文は何ですか?
CustomersView.xaml:
CustomersView.xaml.cs:
CustomersViewModel.cs:
Customer.cs :(モデル)
asp.net-mvc - DataAnnotationsModelBinderはカスタムViewModelとどのように連携しますか?
ASP.NET MVCでサーバー側の検証にデータ注釈を使用するために、 DataAnnotationsModelBinderを使用しようとしています。
私のViewModelが、次のような即時プロパティを持つ単純なクラスである限り、すべてが正常に機能します。
ただし、次のような複雑なものを使用しようとするとDataAnnotationsModelBinder
、NullReferenceException
ViewModel
ViewModel
これは、複数のLINQエンティティをレンダリングするビューにとって大きな問題です。これは、型指定されていないViewData配列ではなく、複数のLINQエンティティを含むカスタムを使用することを本当に好むためです。
にはこのDefaultModelBinder
問題がないため、のバグのようですDataAnnotationsModelBinder
。これに対する回避策はありますか?
編集:考えられる回避策は、もちろん、次のようにViewModelクラスで子オブジェクトのプロパティを公開することです。
しかし、私はこの余分なコードをすべて書く必要がないことを望んでいます。そのDefaultModelBinder
ようなhiearchiesでDataAnnotationsModelBinder
うまくいくので、私もそうすべきだと思います。
2番目の編集:これは確かにのバグのようDataAnnotationsModelBinder
です。ただし、次のASP.NETMVCフレームワークバージョンが出荷される前にこれが修正される可能性があります。詳細については、このフォーラムスレッドを参照してください。
viewmodel - ViewModel パターンの最大の問題点は何ですか?
Glenn Block と私は一緒に ViewModel パターンに取り組んできました。パターンに関連する最大の問題点を特定しようとしており、フレームワークのサポートを追加して問題を軽減することを目標としています。
今夜、Glenn は「View Model」を投稿しました – 映画、投票してください. 私たちはあなたから聞きたい。ViewModel パターン (Model-View-ViewModel または MVVM とも呼ばれます) を実装する際の最大の問題点について、ここに投稿 (および投票) してください。フレームワークがあなたの生活を楽にする方法を教えてください!
WPF と Silverlight の両方を検討しています。
では、ViewModel をより簡単にするために、フレームワークに何をしてほしいか教えてください。