我有一个组合框,它在下拉列表中显示listview,我遵循MVVM模式,我也在我的Viewmodel中设置了公共属性,当我将其分配给标签时,它工作正常,但对于组合框,它似乎不依赖于我的绑定。我尝试了很多方法,但都找不到问题所在。
XAML:
<ComboBox Name="SearchBox" IsEditable="True" Background="White" md:HintAssist.Hint="Search MUID" Grid.Column="1" Margin="5 0 0 0"
Grid.Row="0" Height="40" Width="400" HorizontalContentAlignment="Left" HorizontalAlignment="Left" SelectedItem="{Binding ElementName=lstview ,Path=SelectedItem}" >
<ComboBoxItem>
<ListView x:Name="lstview" ItemsSource="{Binding filterSW}"
SelectedItem="{Binding SelectedMU}"
Height="200" ScrollViewer.VerticalScrollBarVisibility="Visible">
<ListView.View>
<GridView>
<GridViewColumn Width="130" Header="Mu-ID" />
<GridViewColumn Width="130" Header="MU-Identifier" DisplayMemberBinding="{Binding MU_Identifier}" />
<GridViewColumn Width="130" Header="Status" DisplayMemberBinding="{Binding RequestType}" />
<GridViewColumn Width="130" Header="UniqueID" />
</GridView>
</ListView.View>
</ListView>
</ComboBoxItem>
</ComboBox>
当我使用公共属性并访问它的元素时,这对我来说很好,我还尝试设置text={绑定选择MU.MU_Identifier}和选择值,但它不起作用。
<Label Grid.Column="3" HorizontalAlignment="Center" Background="GreenYellow" Content="{Binding SelectedMU.MU_Identifier}"></Label>
看起来您正试图在ComboBox
下拉列表中显示一个多栏列表,而不是每个项目仅显示一个文本行的标准列表。
为了实现这种效果,您在下拉列表中放置了一个ListView
。
不幸的是,这是行不通的。
ComboBox
和ListView
都源自Sseltor
,这是一个允许从列表中选择项目的抽象。这将属性SseltedItem
限制为列表中包含的项目之一。如果您尝试为该属性分配列表中没有的任何值,则该分配将不起作用,并且该属性将保留您分配之前的值。
现在,列表可以直接在XAML中指定,也可以作为属性ItemsSource
的绑定提供。对于ListView
,您可以正确地进行绑定。但是对于ComboBox
,您不指定该绑定。相反,您只指定了一个类型为ComboBoxItem
的项目,该项目包含整个ListBox
作为其值。因此,唯一可以成功分配给ComboBox
的选择项
属性的值是单个ComboBoxItem
。但是您的绑定永远不会分配该值,这就是为什么ComboBox
在关闭时永远不会显示任何内容。
当它打开时,确实会显示包含列表视图的单个项目,但这只是一种光学效果。数据狂欢是行不通的。它之所以适用于
标签
,是因为标签
不受约束,可以显示列表视图
要求它显示的任何内容。
只有当两个控件对
ItemsSource
和SelectedItem
属性具有相同的绑定时,才能同步ListView
和ComboBox
。但在这种情况下,您将无法将列表视图
放在下拉列表中。
最接近您想要的是定制
组合框的模板,如中所述https://zamjad.wordpress.com/2012/08/15/multi-columns-combo-box例如与
ListView
相比,这不会给您提供列标题。此外,这些列在下拉列表中的间隔是均匀的,但这就是您在列表视图中的内容。
如果要自动调整它们的大小,需要将
Width=“auto”SharedSizeGroup=“cN”
添加到每个ColumnDefinition
中,其中“cN”应该有列号而不是N,以使它们在网格中唯一,并添加
网格。IsSharedSizeScope=“True”
到
这对于人们希望简单得多的东西来说是一个很大的麻烦,但是,不幸的是,您不能将
列表视图
放在组合框
的模板中,这是基类选择器
如何处理其项目列表的一个限制。
如果你愿意考虑第三方控制库,还有其他选择。我和Syncfusion合作过,他们有
SfMultiColumnDropDown
,它可以满足你的需求。我很确定其他流行的库也有类似的控件。
我有一个ListView,并设置了ItemContainerStyle,但我仍然遇到同样的问题。请帮忙
问题内容: 我正在尝试进入instagram页面,但没有运气。我不断收到错误和空白的屏幕截图。 错误文字: Casperjs –version是1.1.0-beta3。 基本上,我使用以下代码: 问题答案: 如果使用了PhantomJS 2,则不再需要下面的垫片。不幸的是,CasperJS1.1-beta3还不支持它,因此您可能想要使用GitHub的master分支。 问题是PhantomJSv1
现在,我正在尝试让ListView具有一些可绑定的CustomCells。我将XAML中的单元格定义为DataTemplate下的ViewCell和ListView.ItemTemplate下的ViewCell。 为了简单起见,让我们假设我在单元格中表示了两个字符串。ViewCell看起来如下所示: 编辑1: 我尝试编写一个模仿一些示例的文件,但这还不够。没有一段代码解释该文件是XAML中表示Vi
我试图按照Angular文档中的英雄教程开始学习Angular,但当我开始改变一些事情时,出现了一些问题: > 对于我的项目,我使用Django rest框架作为后端,提供用于检索我的“书籍项目”的应用编程接口。我在这方面非常新,所以我只想知道API设置是否正确,但我不知道怎么做。 我开始在django中实现模型,然后是序列化器、视图集,最后是网址。 在angular中,我为http请求编写了服务
我正在使用一个listview,每个项目都使用一个从带有asynctask类的服务器调用的映像。 问题是,当图像被接收时,ImageView不是好的图像。并且所有图片都加载在ListView的第一项中。 但在滚动过程中调用listview运动时会被剪切。 我有什么可能避免这些问题?我希望得到与GooglePlay的ListView相同的结果。 提前致谢:)
Spring Boot属性解析程序面临一个奇怪的问题。 正在尝试为其中一个属性执行简单的@Value。在调试日志中,我看到该属性已匹配,但稍后报告为找不到几行。知道怎么回事吗? Java代码: 记录在下面