如何制作一个多选的lightswitch ComboBox以及如何使用它来过滤查询

时间:2013-04-12 18:33:44

标签: visual-studio-lightswitch

我需要使用多选组合框过滤Lightswitch查询。我可以构建一个wpf控件来制作组合框,但我不知道如何过滤。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。继承人我是怎么做到的。 首先在表上创建一个单独的查询。它不必与原始不同。原因是组合框将由查询填充,因此如果查询被过滤,那么组合框项目也是如此,我们不希望这样。接下来,确保您转动该查询的分页,否则您只会在组合框中获得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”填充组合框。源是查询,路径是列的名称。

现在好的部分。创建需要过滤的列类型的本地属性。在查询窗口中为您需要过滤的表创建一个参数。确保这与用于填充Combobox的查询不同!将参数映射到属性。

现在,您创建的本地属性会过滤其参数映射的查询。正如您在XAML中注意到的那样,最后一行将组合框的选定项设置为本地属性。确保使用“屏幕”。查询和属性的路径,并确保selectedItems绑定处于“twoWay”模式。

然后它应该工作。