我試圖創建一個跟蹤JobItems的應用程序。在應用程序中,用戶點擊「New Job」按鈕創建一個JobItem。然後彈出一個新窗口(NewJobWindow),用戶必須填寫關於作業的信息。所需的一些信息有多個值。例如,您可以在工作項目中添加多個(字符串)業務單位。我所做的是爲用戶添加一個列表框來添加其中的所有業務單元。我不知道該怎麼做的是綁定這個業務單元的列表框,這樣每次我在其中添加一個項目時,JobItem中的Observable Collection BusinessUnits會在我單擊提交按鈕時添加相同的項目。我需要知道如何使用數據綁定來做到這一點。我已經搜索谷歌尋找類似的答案,但找不到任何。將列表框綁定到WPF中的類型字符串的Observable集合
編輯:
這是我在我的JobItem類,我需要一個用戶在NewJobWindow提交多個BusinessUnits每次都得到更新:
public ObservableCollection<string> BusinessUnit
{
get { return businessUnit; }
set
{
if(!BusinessUnit.Equals(value))
{
businessUnit = value;
OnPropertyChanged("BusinessUnit");
}
}
}
這是什麼JobWindow在xaml中看起來像在列表框中添加商務單元。我創建了一個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>
用戶需要一個UI來在窗口內添加業務單元,這就是爲什麼我需要在列表框中添加項目,然後需要更新對象內的集合。我將如何引用JobItem對象中的集合?請檢查我的編輯,也許你會明白我想要做的更好。 – Erika
@Erika,我強烈建議你閱讀關於MVVM模式。 UI只是一個演示文稿。邏輯(即「添加業務單位」)必須駐留在視圖模型中,而不是視圖(UI)。 – Dennis