我正在尝试创建一个跟踪 JobItems 的应用程序。在应用程序中,用户单击“New Job”按钮以创建 JobItem。然后会弹出一个新窗口(NewJobWindow),用户必须填写有关 Job 的信息。一些所需的信息具有多个值。例如,您可以在一个工作项目中添加多个(字符串)业务单位。我所做的是添加一个列表框,供用户在其中添加所有业务单位。我不知道如何绑定这个业务单位列表框,这样每次我在其中添加一个项目时,当我单击提交按钮时,JobItem 中的 Observable Collection BusinessUnits 都会添加相同的项目。我需要知道如何使用数据绑定来做到这一点。我已经在 Google 上搜索过类似的答案,但找不到任何答案。
编辑:
这是我的 JobItem 类中的内容,每次用户在 NewJobWindow 中提交多个 BusinessUnit 时我都需要更新:
public ObservableCollection<string> BusinessUnit
{
get { return businessUnit; }
set
{
if(!BusinessUnit.Equals(value))
{
businessUnit = value;
OnPropertyChanged("BusinessUnit");
}
}
}
这是用于在列表框中添加业务单元的 xaml 中的 JobWindow 的样子。我创建了一个 ValidatingListBox 只是为了验证用户是否在列表框中插入了一个项目。:
<Label Grid.Column="0" Grid.Row="5">Business Unit:</Label>
<my:ValidatingListBox Grid.Column="1" Grid.ColumnSpan="1" Grid.Row="5" Grid.RowSpan="1" x:Name="businessUnitBox" SelectionMode="Multiple" SelectionChanged="ValidatingListBox_SelectionChanged" ItemsSource="{Binding Path=BusinessUnit}" >
<my:ValidatingListBox.ValidationListener>
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType=Window}" Path="BusinessUnit" Mode="TwoWay">
<Binding.ValidationRules>
<my:ListBoxValidationRule ValidatesOnTargetUpdated="True" ></my:ListBoxValidationRule>
</Binding.ValidationRules>
</Binding>
</my:ValidatingListBox.ValidationListener>
</my:ValidatingListBox>