我在一個視圖中有兩個數據網格,但這些數據網格的ItemsSource集合在不同的視圖模型中。那麼是否有可能將這兩個數據網格與兩個不同視圖模型中的集合綁定?一個視圖可以有兩個視圖模型作爲其數據上下文嗎?
6
A
回答
8
去一個視圖模型結合兩種:
public class ViewModelA {
public ObservableCollection<CustomClass> Items { get; set; }
/* properties, etc. */
}
public class ViewModelB {
/* properties, etc. */
}
public class CombiningViewModel {
public ViewModelA A { get; set; }
public ViewModelB B { get; set; }
}
結合可以像
完成<DataGrid ItemsSource="{Binding A.Items}">
<!-- Sample, not complete -->
</DataGrid>
0
您可以爲每個DataGrid而不是容器視圖設置DataContext。
<Grid>
<DataGrid ... DataContext="..." />
<DataGrid ... DataContext="..." />
</Grid>
或者不使用的DataContext並綁定到模型直接
<DataGrid ItemsSource="{Binding Source={StaticResource ...}}" />
1
不,不是直接。你有選擇,但:
你可以設置視圖本身的DataContext的,然後暴露每個視圖模型通過一個單獨的屬性並綁定到這些屬性:
public class MyView : Window
{
public MyView()
{
this.DataContext = this;
}
public ViewModel1 FirstViewModel { get; set; }
public ViewModel2 SecondViewModel { get; set; }
}
或者你可以做一個包裝視圖模型,其或者擴展(繼承自其中一個視圖模型),或者將它們包裝並表面適當的屬性:
public class MyCompositeViewModel
{
public ViewModel1 FirstViewModel { get; set; }
public ViewModel2 SecondViewModel { get; set; }
}
相關問題
- 1. 可以在iPad上同一個窗口/視圖上使用兩個表視圖作爲主細節概念嗎?
- 2. 骨幹:一個模型兩個視圖?
- 3. 你可以爲多個視圖調用一個Drupal視圖模板嗎?
- 4. 在一個XIB中可以有兩個表視圖嗎?
- 5. 在其他模型視圖中顯示一個模型數據?
- 6. iOS:可以在其超級視圖上放置另一個子視圖嗎?
- 7. NoMethodError當試圖從一個視圖上的兩個模型獲取數據
- 8. Android:一個視圖(不是視圖組)可以包含另一個視圖嗎?
- 9. 在1視圖中有2個模型的方法,可以嗎?
- 10. 可以創建一個通用視圖模型嗎?
- 11. 有沒有模型可以有一個視圖和viewmodel?
- 12. 這是一個視圖模型嗎?
- 13. 模型可以觀察視圖嗎?
- 14. 模型可以刷新視圖嗎?
- 15. 在兩個透視圖中添加一個視圖,在兩個透視圖中都可見一個透視圖
- 16. 可以有3個視圖嗎?
- 17. 你可以將一個視圖作爲iPhone的幾個不同視圖的子視圖嗎?
- 18. django。一個視圖可以接收一個列表作爲參數嗎?
- 19. 在一個視圖中的視圖模型/實體或多個視圖模型的多個視圖?
- 20. 有兩種不同的佈局可以獲得兩個以上的視圖嗎?
- 21. 我可以在Django中使用數據庫視圖作爲模型嗎?
- 22. 我可以在視圖模型位圖上使用MvxImageView嗎?
- 23. 我可以從另一個視圖中調用視圖嗎?
- 24. Django模板上下文多個視圖
- 25. Yii2在一個視圖上渲染兩個模型
- 26. 在剃刀上使用兩個模型在一個視圖
- 27. 你可以錨定一個視圖嗎? (或有其他的工作,以防止視圖被UIDateTimePicker推)?(iOS)
- 28. 製作一個視圖模型誤差
- 29. 如何使用數據模板將視圖與視圖模型相關聯時,如何將視圖從一個視圖轉換爲另一個視圖
- 30. 如何訪問單個視圖中的兩個模型數據?
+1我也將在這個實例中使用複合ViewModel。 –