2011-10-25 6 views
2

奇妙なタイトルに申し訳ありません。WPF - 複数のコントロールをグループ化し、いくつかの「ページ」の1つを表示する機能

私が3つの値A、B、Cを持つコンボボックスを持っているとしましょう。

「A」が選択されている場合、特定のコントロールセットを表示したいとします。 「B」が選択されている場合は、別のコントロールのセットを表示したいが、チケットの全く同じ場所に表示する。

基本的にはタブコントロールのようですが、タブを表示したくないのですが、特定の「ページ」が必要で、バインドされた値によってはそれらのページの1つを表示する必要があります。

私はコンボボックスの値に基づいて別々のuserControlsを作成し、それぞれの可視性を設定できることを知っていますが、私のwpfデザイナーでは、同時にすべての「ページ」を見ることができません。

これはWPFで可能ですか?ありがとう。

+0

バインディングについてNaturalContainerがValueConverterを持つコンボボックスの特定の値にどのように表示されますか? – kenny

+0

それはうまくいくが、私が上で述べたように、デザイナーは画面の正確な表現ではないだろう。私。ある時点で1つしか見えず、残りの部分にはスペースを取らない10のコントロールが存在する可能性があります。 – user981225

+0

これらはすべてデザインモードで表示可能です。 BindingのBool/Visibleプロパティを設定します。デザインモードでは、すべてが真になるようにします。 – kenny

答えて

2

私は最近非常に似たような状況に遭遇しました。私のソリューションは、フレームコントロールを使用することでした。 Frameコントロールでは、さまざまなPagesをロードできます。各ページには、メインウィンドウのように、異なるコントロールセットが含まれている場合があります。フレーム上でナビゲーションが無効になっている場合、それはあなたが探しているものにかなり近いはずです。サンプルXAML:コンボボックスを変更するためのイベントハンドラ内

<Frame Name="thisFrame" Width="250" Height="400" 
    NavigationUIVisibility="Hidden" /> 

thisFrame.NavigationService.Navigate(new PageClassName()); 

これは、フレームが選択されたページを表示いたします。必要に応じて、ここにパラメータを指定して、新しいページ内のUIコントロールのデフォルト状態を設定することができます。このようにオブジェクトを渡すと、UIコントロールをオブジェクトにバインドして変更を保存できます。

+0

お返事ありがとうございました!私はDevExpress 11にも実際のタブを隠すオプションがあることを知りました。私は確かにあなたのソリューションを試してみます、もう一度おかげで。 – user981225

+0

あなたに最高の運があります!ソリューションが最終的に機能する場合は、この質問への回答として投稿することをお勧めします。 – ford

+0

それは実際に動作します!月曜日にサンプルを掲載します。あなたの助けをもう一度ありがとう。 – user981225

0

これは私のサンプルソリューションです。タブコントロールからタブヘッダーを削除する機能を持つDevExpress 11を使用していることに注意してください。 (UsePage1とUsePage2は私のビューモデルでブール値をとります。

<DXTabControl SelectedIndex="0" Width="Auto" > 
<DXTabControl.View> 
    <TabControlMultiLineView HeaderLocation="None" /> 
</DXTabControl.View> 
<DXTabItem IsSelected="{Binding Path=UsePage1}" > 
</DXTabItem> 
<DXTabItem IsSelected="{Binding Path=UsePage2}" > 
</DXTabItem> 
</DXTabControl> 
関連する問題