我在我的項目中有以下情況,我想知道什麼是實現我的目標的最佳方式。組合框與「刷新」條目
目標:有一個帶有itemsource綁定的組合框和一個功能類似刷新按鈕(從數據庫獲取項目並更新組合框項目)的組合框。
目前我使用itemsource綁定(請參見下文)設置我的組合框,但目前我正忙於刷新命令的綁定。
的ItemsSource綁定:
<UserControl.Resources>
<CollectionViewSource x:Key="ProjectSource" Source="{Binding Projects, ElementName=Ancestor}"/>
<CompositeCollection x:Key="ProjectCollection">
<CollectionContainer Collection="{Binding Source={StaticResource ProjectSource}}"/>
<Button Content="Refresh!"/>
</CompositeCollection>
</UserControl.Resources>
如果項目是一個依賴屬性與項目的列舉,與刷新命令(一個ICommand)另一個依賴屬性也是可用的。定義爲
我的組合框IST如下:
<ComboBox SelectedValue="{Binding Project}"
ItemsSource="{StaticResource ProjectCollection}"
VerticalContentAlignment="Center"
HorizontalAlignment="Left"
Name="Box"
IsHitTestVisible="{Binding IsEditable}"
IsEnabled="{Binding IsEnabled, Mode=OneWay, IsAsync=True}">
<ComboBox.Resources>
<DataTemplate DataType="{x:Type viewModels:ProjectViewModel}">
<TextBlock Text="{Binding Name}"/>
</DataTemplate>>
</ComboBox.Resources>
</ComboBox>
的問題是,命令無法找到綁定的源,所以這個問題是我是正確的方式做,有一個解決方案,還是我在錯誤的方式(這會更好?)。
當然,我可以在我的組合框旁邊添加一個按鈕,但我想在我的組合框中添加按鈕。 :)
btw .:我試圖按照MVVM模式。
請記住,以上示例中沒有命令綁定,因爲它沒有工作。 :) – Thoor
我很好奇的可用性。這是否意味着刷新項目總是在索引0?如果不是,如果您有大量項目,您的用戶需要在組合列表中找到它。 – tgpdyk
@tgpdyk關於在我的情況下的可用性是沒有問題的,因爲只有當特定物品不在列表中時,每年約5次的情況下刷新纔是必要的。 – Thoor