2010-11-30 3 views
0

SilverlightページのMainpage.xamlに「searchwin.xaml」ユーザーコントロールがあります。 'searchwin'には独自のビューモデル 'searhwinVM'があります。私はこのSilverlightユーザーコントロールのデータコンテキストを設定すると、コントロールが常に表示されるようになります。

<UserControl.Resources> 
<vm:SearchWin x:Name="SearchWinVM" x:Key="SearchWinVM" /> </UserControl.Resources> 

<part:SearchWin ..... {other properties here} 
Visibility="{Binding Converter={StaticResource BooleanToVisibilityConverter}, Path=IsSearchVisible}" 
DataContext="{StaticResource SearchWinVM}"/> 

のようなメインページのXAMLでそののviewmodelに私はメインページの上にある私のリストボックス内の特定の値に変更した場合にのみ、デフォルトでは見えないし、目に見える設定したいこの検索コントロールをsearchwinのDataContextのを設定しました.xaml。 mainpage.xamlにUCのdatacontextを設定するか、mainpage.xaml.csにプログラムで設定すると、コントロールは常に表示されます。私は今それを隠すことができません。 datacontextを削除すると、正常に動作します。任意のアイデアをどのようにこれを修正するには?お時間を

おかげで...

答えて

0

は、あなたのコンバータが全く呼ばれていることを確認したことがありますか?私はブレークポイントを入れて何が起こるかを見ています。

+0

はい、呼び出されています。同じコードで、DataContext = "{StaticResource SearchWinVM}"という行を取り出すと、期待通りに機能します。 xamlやmainpage.xaml.csにdatacontextを設定すると、コントロールが永遠に見えるようになります。 – user20358

+0

それが呼び出されている場合は、IsSearchVisibleにマップされているはずのパラメータが目的の値になります(明らかにこれはfalseと予想されます)。そうであれば、コンバータは対応するVisibility値を返します折りたたむ必要があります)? – rawpower

+0

xamlでdatacontextを設定すると、BooleanToVisibilityConverterを呼び出すように見えません。奇妙な! ... DataContextプロパティを取り除くと、それは動作します。DataContextは、呼び出されているかどうかにかかわらず、私のコンバータと何をしていますか? – user20358

関連する問題