MainViewModel を持つMainWindow.xamlページがあり、1つのUserControlを使用して2つのSidePanelsを追加したいのですが、異なるViewModelsを持つ必要があります。 XAMLで各ユーザーコントロールのためのDataContextとして、このプロパティにオブジェクトを設定する方法1つのUserControlに異なるViewModelを割り当てます。
public MainViewModel()
{
LeftSidePanel = new SidePanelViewModel(PanelSides.Left);
RightSidePanel = new SidePanelViewModel(PanelSides.Right);
}
: MainViewModelはalredy作成SidePanelViewModelsと2つの特性を持っていますか?このdoesnotの作品のような 何か:私はそれを行う方法を考えて、すべての脳を破った
<Window DataContext="{Binding MainViewModel, Source={StaticResource Locator}}">
...
<Grid Visibility="{Binding RightSidePanel.PanelVisibility}" Grid.Column="4" Grid.Row="2" >
<v:SidePanelViev DataContext="{Binding RightSidePanel}" />
</Grid>
</Window>
、
PSを助けてください。 または私はContentControlに
<Window DataContext="{Binding MainViewModel, Source={StaticResource Locator}}">
...
<Grid Visibility="{Binding RightSidePanel.PanelVisibility}" Grid.Column="4" Grid.Row="2" >
<ContentControl Content="{Binding RightSidePanel}"></ContentControl>
</Grid>
</Window>
の内容としてSidePanelViewModelの両方のインスタンスを追加し、すべてのクラスをバインドするものを新しいWindow.Resourceを追加することによって、私の問題を解決した
あなたの問題は何ですか?あなたが示したことはうまくいくはずです。 – dkozl
しかし、私はユーザーコントロールの任意のプロパティをバインドしようとしているとき、ユーザーコントロールのプロパティウィンドウはデータコンテキストを持たないことを示します –
'UserControl'コンストラクタで' DataContext = this '? – dkozl