我对此感到非常困惑-如果答案真的很明显,我很抱歉,但我对编程很陌生。
我将用户控件设置为视图,该视图加载到我的主视图中的内容控件中。用户控件(称为 SetView)的数据上下文在 MainView 中设置。我可以愉快地将 SetView 绑定到 UserControlVM(称为 SetVM)。
在 SetVM 中,我加载了我创建的类的 ObservableCollection:
public class WeightSet : Weights
{
public string BodyArea { get; set; }
public string ExerciseType { get; set; }
public int SetNumber { get; set; }
public static ObservableCollection<int> Reps { get; set; }
#region Constructor
//This is the main constructor
public WeightSet(string bodyarea, string exerciseType, int setNumber)
{
BodyArea = bodyarea;
ExerciseType = exerciseType;
SetNumber = setNumber;
Reps = new ObservableCollection<int>();
AddReps();
}
#endregion Constructor
#region Methods
public void AddReps()
{
for (int i = 1; i < 100; i++)
{
Reps.Add(i);
}
}
#endregion Methods
我的 SetView 然后有一个 ListView 其 ItemsSource 是
public ObservableCollection<WeightSet> Sets
这是 ListView 的 xaml:
<UserControl x:Class="CalendarTest.SetView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:forcombo="clr-namespace:CalendarTest.Model.Repository.Local_Data"
xmlns:VM="clr-namespace:CalendarTest.ViewModel"
mc:Ignorable="d"
d:DesignHeight="165" d:DesignWidth="300">
<Grid >
<StackPanel>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding CurrentExercise}" Width="100" Height="40"></Label>
<Label Content="{Binding BodyArea}" Width="100" Height="40"></Label>
</StackPanel>
<ListView ItemsSource="{Binding Sets}">
<ListView.View>
<GridView>
<GridViewColumn Header="Set Number" DisplayMemberBinding="{Binding Path=SetNumber}" Width="100"></GridViewColumn>
<GridViewColumn Header="Select Reps" Width="120">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ComboBox Width="100" ItemsSource="{Binding Source={x:Static forcombo:WeightSet.Reps }}" ></ComboBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=Reps}"></GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</StackPanel>
</Grid>
当我加载 SetView 时,我有一组数字列表和一个带有静态列表的组合框。这是一个镜头:
我似乎无法将组合框的选定项绑定回我的 ViewModel。有没有办法在 WeightSet 类中设置所选项目?我需要能够保存所选号码吗?
我知道我不能只绑定到一个属性,因为 ComboBox 的数量将由用户决定?对我当前设计的任何提示或更正将不胜感激