問題タブ [prism-6]
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.
shell - プリズム6でシェルの前に表示するログイン画面
Prim 6でwpfサンプルアプリに取り組んでいます...ログインウィンドウとメイン画面(シェル)があります... UnityをBootStrapperとして使用しています。
シェルをロードする前にログイン画面を表示したい...私はこのようにしています...
上記の場合、ログイン画面が表示されます...認証時にシェル画面に移動しますが、RegionNavigationは機能しません....
もし私が保つなら
すべてが機能しますが、ログイン画面が最初に表示されません。したがって、認証できません...
誰でもこれを解決する方法を提案できますか?
よろしく、パワン
c# - WPF Prism モジュールの初期化
2 つのモジュールを備えた Prism Shell があります。1 つのモジュールはメイン アプリケーションのモックであると想定され、もう 1 つのモジュールはMainAppMock
、メイン システムが領域として使用しているモジュールであると想定されますModuleOne
。1 つかもしれないし、100 万モジュールかもしれません。
問題は、プリズムがどのように機能するかを理解することです。ファイルで名前空間を呼び出さない限り、MainAppModule
正しく初期化されBootstrapper
MainWindow.xaml
ます。
私の質問:これは、その名前空間を呼び出しているときに実行時にモジュールをPrism
ロードしているためであり、既にロードされているためロードされないためですか? 舞台裏で実際に何が起こっているのですか?
シェル:
MainAppMock と ModuleOne は、名前を除いて同じです。
ModuleOne クラス:
問題はここにあります。でBootstrapper
MainWindow
:
mainAppMock
注:上記のように名前空間を削除すると正常に動作します。
c# - Prism アプリケーションで SolidColorBrush をバインドする
Prism 6 を使用してアプリケーションを構築していますが、MVVM、データ バインディング、およびこれらすべての設計パターンは初めてです。アプリケーションでは、ビュー モデルの一部のプロパティの値に応じて異なる色を表示する必要があります。
そのために、次のようにリソース ディクショナリにいくつかの SolidColorBrush を用意しています。<SolidColorBrush x:Key="{x:Static status:Status.notViewed}">#FFe74856</SolidColorBrush>
次に、私のビューでは、次を使用prism:ViewModelLocator.AutoWireViewModel="True"
して、対応するビューモデルに接続します。また、次のようにキャンバス上でバインディングを使用します (ただし、それはグリッドまたはその他のものである可能性がありますが、あまり気にしません) <Canvas Background="{Binding B}" Margin="5" />
。補足として、日付を表示する文字列にバインドされたテキストブロックなど、他のプロパティにバインドされた他の要素があり、それは正常に機能します。
ここで、ビュー モデルB
で、バインディングに対応するプロパティを作成しますpublic SolidColorBrush B = (SolidColorBrush)Application.Current.Resources[Status.notViewed];
。
B
アプリケーションを実行すると、キャンバスは白いままです...ただし、ビューモデルのコンストラクターでコンテンツを出力するため、ブラシが含まれていると確信しています( Console.WriteLine("Color: {0}", B.ToString());
0 と正しい値を取得します。
私は何を間違っていますか?
ありがとう