4つの異なるユーザーコントロールを含むことができるページがありますが、そのうちの1つだけを一度に表示する必要があります。私はこのようなことをしたい:UserControlの可視性がトリガーされていない
<regControls:MyUserControl1 Visibility="{Binding Ctrl1, Mode=TwoWay, Converter={StaticResource BoolToVisibilityConverter}" />
<regControls:MyUserControl2 Visibility="{Binding Ctrl2, Mode=TwoWay, Converter={StaticResource BoolToVisibilityConverter}" />
<regControls:MyUserControl3 Visibility="{Binding Ctrl3, Mode=TwoWay, Converter={StaticResource BoolToVisibilityConverter}" />
<regControls:MyUserControl4 Visibility="{Binding Ctrl4, Mode=TwoWay, Converter={StaticResource BoolToVisibilityConverter}" />
しかし、コンポーネントが初期化されると、コンバータはまったくトリガされません。私はプロパティをバインドし、実行変更を発生させます。
コードの背後にある別のコントロールを初期化しないことをお勧めします。私はWP8 Silverlight(WP 8.1ではなく)を使用しています。私は何が欠けていますか?
編集:
私はこの問題を理解し始めています。しかし、私はそれを解決する方法を知らない。私は表示するために何を私に伝えますGWT層からのコールを取得するように、我々は、GWTを使っている:
public void ShowMyUserControl1()
{
SimpleIoc.Default.Register<MyPageViewModel>();
SimpleIoc.Default.Register<MyUserControl1ViewModel>();
SimpleIoc.Default.Register<MyUserControl2ViewModel>();
SimpleIoc.Default.Register<MyUserControl3ViewModel>();
SimpleIoc.Default.Register<MyUserControl4ViewModel>();
navigationService.NavigateTo(typeof(MyPageViewModel).FullName);
var viewModel = SimpleIoc.Default.GetInstance<MyPageViewModel>();
viewModel.DisplayMyUserControl1();
}
public void ShowMyUserControl2()
{
....
}
ここでの問題は、ビューモデルは、と呼ばれ、コンポーネントが初期化される前に、プロパティがトリガされていることです。ここでの問題は、どのメソッドがGWTから呼び出されたのかわかりません。それは、ShowMyUserControl1またはShowMyUserControl2(またはコントロール3または4を要求するメソッドが表示される可能性があるので、何とかこれを伝え、同時にGWTからの引数を含む正しいビューモデルにパラメータを渡す必要があります。このメッセージは、コントロールが初期化され、これらのメッセージを聞くために登録される前に送信されるため、ユーザーはアプリを離れて電話を切ってから再び戻ることができるので、ビューモデルが「トンが存在し、登録する必要があります。
はい、私は他のを持っていません問題その他の意見Windows Phone 8.0のバインディングエラーを追跡する方法を知らないはい、それを設定するとき、それは不動産を破ります。 – peuhse
新しいコンバータを作成し、その1つを置き換えます。そしてブレークポイントを作成します。propertyChangeでinputparamsをチェックします。また、viewModelコードを表示します。 – Arheus
更新された質問をご覧ください。新しいコンバータは何も変更しません。 mvvmlightsプロパティの変更、つまりRaisePropertyChange(()=> "PropertyName")を使用する – peuhse