我需要使用多选组合框过滤 Lightswitch 查询。我可以构建一个 wpf 控件来制作组合框,但我不知道如何过滤。
有人能帮我吗?
我有同样的问题。下面是我是如何做到的。首先在您的表上创建一个单独的查询。它不必与原来的不同。原因是组合框将由查询填充,因此如果查询被过滤,那么组合框项目也会被过滤,我们不希望这样。接下来,确保您关闭该查询的分页,否则您只会在组合框中获得 45 个(默认值)项目。
接下来,您需要自定义控件。我做了一个简单的silverlight组合框。
<UserControl x:Class="SilverlightControlLibrary.SilverlightComboBoxControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Height="23"
Width="180">
<ComboBox Height="23" HorizontalAlignment="Left" VerticalAlignment="Top" Width="180"
Margin="0,0,0,0" Name="ModuleIDFilterCB"
ItemsSource="{Binding Screen.ADDEDQUERY, Mode=OneWay}"
DisplayMemberPath="ADDEDQUERYCOLUMN"
SelectedItem="{Binding Screen.LOCALPROPERTY, Mode=TwoWay}"
/>
</UserControl>
从您创建的查询中,您使用“ItemsSource”属性和“DiplayMemberPath”填充组合框。源是查询,路径是列的名称。
现在是好的部分。创建需要过滤的列类型的本地属性。在查询窗口中为您需要过滤的表创建一个参数。确保这与您用于填充组合框的查询不同!将参数映射到属性。
其参数映射的查询现在由您创建的本地属性过滤。正如您在 XAML 中注意到的,最后一行将组合框的选定项设置为本地属性。确保使用“屏幕”。查询和属性的路径,并确保 selectedItems 绑定处于“双向”模式。
然后它应该工作。