2 つのパネル (左パネル、右パネル) を含む 1 つの xaml ファイルを使用しています。これは、2 つのビューを意味します。また、各ビューに 2 つの ViewModel を使用しています。この状況に DataContext をバインドする方法は?
質問する
1117 次
3 に答える
3
それぞれに独自の ViewModel が必要です。おそらく、複数の ViewModel を持つ View が既にあるでしょう。List にバインドする ItemControl はありますか? 私は通常そうします。
2 つのプロパティを持つ ViewModel を作成します。
public class ParentScreenViewModel : ViewModelBase
{
public ViewModelBase LeftPanel
{
get {...}
set {...}
}
public ViewModelBase RightPanel
{
get {...}
set {...}
}
}
次に、XAML はこれらにバインドします。
<Panel x:Name="LeftPanel" DataContext="{Binding LeftPanel}" />
<Panel x:Name="RightPanel" DataContext="{Binding RightPanel}" />
とにかく、それが私がすることです。
于 2012-11-02T15:45:03.360 に答える
0
ツリービュー内の任意の子要素の DataContext を変更できます。
そうでない場合は、両方のパネルをそれぞれの DataContext に設定します。これは、親コンテナー (ウィンドウやユーザー コントロールなど) のデータ コンテキストよりも優先されます。
于 2012-11-02T15:36:15.210 に答える
0
たとえば 2 つの StackPanel がある場合は、これを試してください。
<StackPanel x:Name="spFirst" />
<StackPanel x:Name="spSecond" />
コード ビハインドでは次のようになります。
FirstViewModel vm1 = new FirstViewModel();
SecondViewModel vm2 = new SecondViewModel();
spFirst.DataContext = vm1;
spSecond.DataContext = vm2;
ここに例があります (DoubleDataContextExample.zip)。
于 2012-11-02T15:36:44.870 に答える