我试图在WPF中创建一个复选框数组,这些复选框绑定到ViewModel中的数组。 创建复选框列表可以正常工作。 显示一行16个复选框,并按照下面的测试代码正确设置了它们的初始状态。
但是,我不知道如何绑定回视图模型。
我知道问题出在设置复选框绑定,但是我无法计算出要绑定的对象。 这是代码:
<ItemsControl ItemsSource="{Binding Path=Patterns1}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=.}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
ViewModel(这只是暂时填充数组)
using System.Collections.ObjectModel;
using System.Diagnostics;
namespace Test
{
public class MyViewModel
{
public virtual ObservableCollection<bool> Patterns1 { get; set; }
public virtual ObservableCollection<bool> Patterns2 { get; set; }
public virtual ObservableCollection<bool> Patterns3 { get; set; }
public virtual ObservableCollection<bool> Patterns4 { get; set; }
public virtual ObservableCollection<bool> Patterns5 { get; set; }
public virtual string Percentage1{ get; set; }
public MyViewModel()
{
Patterns1 = new ObservableCollection<bool>();
Patterns2 = new ObservableCollection<bool>();
Patterns3 = new ObservableCollection<bool>();
Patterns4 = new ObservableCollection<bool>();
Patterns5 = new ObservableCollection<bool>();
bool tempBool = true;
for(int i = 0; i < 16; i++)
{
Patterns1.Add(tempBool);
Patterns2.Add(!tempBool);
Patterns3.Add(tempBool);
Patterns4.Add(!tempBool);
Patterns5.Add(tempBool);
tempBool = !tempBool;
}
}
protected void OnPatterns1Changed()
{
Percentage1 = string.Format("Time is {0:HH:mm:ss} ", DateTime.Now);
}
}
}
我知道问题出在这里
<CheckBox IsChecked="{Binding Path=.}"/>
如何将其绑定回ViewModel?
谢谢