我已經具有綁定物品源的組合框...我已經剝奪我的例子下降到關鍵件:如何將ComboBox轉換爲使用綁定的CompositeCollection?
<UserControl x.Class="My.Application.ClientControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:conv="clr-namespace:My.Utilities.Converters"
Name="ClientControl">
<UserControl.Resources>
<ResourceDictionary>
<CollectionViewSource Key="x:ClientsCollection" />
</ResourceDictionary>
<conv:ClientOptions x:Key="ClientOptions" />
</UserControl.Resources>
...
<ComboBox Name="Options"
DataContext="ClientsCollection"
ItemsSource="{Binding [ClientNumber], Converter={StaticResource ClientOptions}" />
</UserControl>
這工作,但我現在要一個手動項目添加到我的組合框將觸發所謂的替代功能「其他...」所以我不必移動使用CompositeCollection ......像這樣:
<ComboBox Name="Options"
DataContext="ClientsCollection">
<ComboBox.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection="{Binding [ClientNumber], Converter={StaticResource ClientOptions} />
<ComboBoxItem>Other...</ComboBoxItem>
</CompositeCollection>
</ComboBox>
嘗試,因爲我可能,綁定的物品是不會填充時使用CompositeCollection。它只顯示手動ComboBoxItem「其他...」。如果我刪除該項目,該列表是空的。如果我給轉換器附加一個斷點,它不會捕獲任何東西,這似乎表明綁定甚至沒有嘗試。
我顯然不理解有關CompositeCollection中的綁定函數是如何發生的。有人可以在我的XAML中看到錯誤或解釋我錯過了什麼?
你可以充實一下你的答案...如果我將它移動到Resources部分並設置我的ItemsSource = {Binding Source = {StaticResource ...}}如何設置我的CollectionContainer的上下文? – BobTheBuilder
看到我編輯的答案... – hbarck
所以...我的ComboBox目前綁定到數據上下文...我的ClientsCollection;我的ComboBox.ItemsSource綁定到一個選項列表,它將根據我的ClientsCollection中當前選擇的客戶端而改變。我在哪裏定義這種關係[上下文]?在資源或組合框?你能發佈一段代碼片段來澄清嗎? – BobTheBuilder