【发布时间】:2016-10-20 14:45:31
【问题描述】:
我有一个 MVVM 应用程序,我想将 3 个集合绑定在一起。在视图中,我有带有 TimeBoxes 的 ItemsControl(只是带有依赖属性 Time 的 TextBoxes)。
<Window x:Class="Scoreboard.View.MainWindow"
...
<ItemsControl ItemsSource="{Binding TimeBoxes}"/>
...
</Window>
后面有代码
public class Mainwindow
{
//...
var Timeboxes = new ObservableCollection<TimeBox>();
}
在模型中我想要一个 Time 集合。
public class GameModel
{
var Times = new ObservableCollection<Time>();
// Don't know if this is how it should be
}
然后我有另一个窗口,其输出类似于 Views MainWindow,但 ItemsControl 包含边框而不是 TimeBoxes。
<Window x:Class="Scoreboard.Display.DisplayWindow"
...
<ItemsControl ItemsSource="{Binding Borders}"/>
...
</Window>
它应该做的是:单击 View (MainWindow) 中的按钮后,TimeBox 将在 TimeBoxes 集合中创建。 Time 其中TimeBox 绑定到Times 中的GameModel 中的新Time。并且Time 还绑定到输出(显示)Window 的Borders 中的新Border 的内容(标签)(我有TimeToStringConverter)。当GameModel 中的Time 达到零时,它的实例将从所有集合中删除。我的问题是我不知道如何将集合中的项目绑定到另一个集合的项目。为简单起见,省略了 ViewModel。
总而言之,我想以 1:1:1 的比例将 TimeBox 动态绑定到 Time 和 Time 到 Border 的内容。
【问题讨论】: