我在我的项目中有以下情况,我想知道什么是实现我的目标的最佳方式。组合框与“刷新”条目
目标:有一个带有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