Eri*_*ika 3 c# data-binding wpf listbox observablecollection
我正在尝试创建一个跟踪JobItems的应用程序.在应用程序中,用户单击"新建作业"按钮以创建JobItem.然后弹出一个新窗口(NewJobWindow),用户必须填写有关作业的信息.所需的一些信息具有多个值.例如,您可以在作业项中添加多个(字符串)业务单位.我所做的是为用户添加了一个列表框,以添加其中的所有业务单位.我不知道该怎么做是绑定业务单位的列表框,这样每次我在其中添加一个项目时,单击提交按钮时,JobItem中的Observable Collection BusinessUnit会添加相同的项目.我需要知道如何使用数据绑定来完成此操作.我已经搜索谷歌寻找类似的答案,但找不到任何答案.
编辑:
这是我在JobItem类中所拥有的,每当用户在NewJobWindow中提交多个BusinessUnit时,我需要更新它:
public ObservableCollection<string> BusinessUnit
{
get { return businessUnit; }
set
{
if(!BusinessUnit.Equals(value))
{
businessUnit = value;
OnPropertyChanged("BusinessUnit");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这就是JobWindow在xaml中用于在列表框中添加businessunits的样子.我创建了一个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>
Run Code Online (Sandbox Code Playgroud)
绑定非常简单:
<ListBox ItemsSource="{Binding MyCollection}" />
Run Code Online (Sandbox Code Playgroud)
其中MyCollection是ObservableCollection类型的属性.您不需要向ListBox添加项目,将它们添加到集合,数据绑定将完成剩下的工作.
| 归档时间: |
|
| 查看次数: |
4803 次 |
| 最近记录: |