- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近开始使用 MVVM 开发 WPF 应用程序。我关注 Josh Smith's article .我编写了一个基本屏幕,它只是在 ViewModel 的 ObservableCollection 类的 ListView 中显示数据。这是一个 List<string>
.我只是希望能够显示字符串列表,然后能够将其保存回父集合的基础属性中。
我应该使用RelativeSource 作为DataContext 与ViewModel 链接吗?
这是 ViewModel 代码。
public class ViewModel
{
public List<string> AndOrList
{
get
{
List<string> andOrList = new List<string> { "AND", "OR" };
return andOrList;
}
}
public ObservableCollection<BusObjects.Criterion> Criteria
{
get
{
return new ObservableCollection<BusObjects.Criterion>(_stream.ParseFilterCriteria().Criterias);
}
}
}
这是问题区域
<GridViewColumn Header="And / Or">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding AndOrList}">
</ComboBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
这是整个 XAML 代码。我正在尝试将 AndOrList 集合绑定(bind)到 ComboBox。
<UserControl.Resources>
<local:FilterCriteriaConverter x:Key="FilterCriteriaConverter"/>
<CollectionViewSource x:Key="CriteriaList"
Source="{Binding Path=Criteria}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="DimName" Direction="Ascending"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
<Style x:Key="CriteriaItemStyle" TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay}" />
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ItemsControl.AlternationIndex" Value="1" />
<Condition Property="IsSelected" Value="False" />
<Condition Property="IsMouseOver" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="#EEEEEEEE" />
</MultiTrigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<DockPanel>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="5"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ListView
Name="lstCriteria"
Grid.Row="0"
AlternationCount="2"
DataContext="{StaticResource CriteriaList}"
ItemContainerStyle="{StaticResource CriteriaItemStyle}"
ItemsSource="{Binding}" DockPanel.Dock="Top">
<ListView.Resources>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.Resources>
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<Rectangle Fill="SteelBlue" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="And / Or">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding AndOrList}">
</ComboBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Path=DimName}" />
<GridViewColumn Header="Oprator" DisplayMemberBinding="{Binding Path=Operator}" />
<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Path=DimValue}" />
</GridView>
</ListView.View>
</ListView>
<Border Grid.Row="1" CornerRadius="4" BorderThickness="1">
<GridSplitter HorizontalAlignment="Stretch" VerticalAlignment="Center"
Height="3"
Background="SteelBlue"/>
</Border>
<Border Name="xmlBorder" Grid.Row="2" VerticalAlignment="Stretch" CornerRadius="4" BorderThickness="1" >
<StackPanel x:Name="stkPanel" Grid.Row="2" Height="Auto" VerticalAlignment="Stretch" >
<XMLViewer:Viewer x:Name="xmlViewer" VerticalAlignment="Stretch" />
<TextBox x:Name="txtXml" TextChanged="XmlTextChanged" Visibility="Hidden"
Text="{Binding Path=FilterCriteria,
Converter={StaticResource FilterCriteriaConverter}}" TextWrapping="Wrap"/>
</StackPanel>
</Border>
</Grid>
</DockPanel>
谢谢
最佳答案
我会去DataContext
仍然是 View 模型,将路径更改为 DataContext.AndOrList
并添加 RelativeSource
找到相应的控件。
此外,我不会更改 ListView 的 DataContext,只需将所有内容都放在 ItemsSource 绑定(bind)中:
<ListView ItemsSource="{Binding Source={StaticResource CriteriaList}}" ...>
<ComboBox ItemsSource="{Binding DataContext.AndOrList, RelativeSource={RelativeSource AncestorType=ListView}}">
关于wpf - 在 Josh Smith 的文章之后,在 MVVM 的 ListView 中添加 ComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6864742/
我正在尝试创建一个 Django 网站,每次在本地主机上运行/articles/api/article 页面时:我都会收到此回溯: Environment: Request Method: GET R
我正在尽最大努力理解开放图谱协议(protocol)中的一切含义阅读 FB page在上面和 OGP Page .这在 FB 和 OGP 的世界中究竟意味着什么: Note that the Open
我的 HTML/CSS 中存在页脚与文章内容重叠的问题。是的,我一直在网上搜索但似乎没有任何效果,我希望你知道它有什么问题。我在这里做了一个codepen: CodePen LINK
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我可以将变量作为警报显示在函数中,但无法将变量传递给文章。我做错了什么? 我知道“a”保存了正确的信息,因为我已经通过警报显示了它。 我尝试使用以下方式传递变量:placeholderContent.
这个问题已经有答案了: Rails article helper - "a" or "an" (6 个回答) 已关闭 3 年前。 是否有类似 [#pluralize in ActiveSupport]
这个问题已经有答案了: Rails article helper - "a" or "an" (6 个回答) 已关闭 3 年前。 是否有类似 [#pluralize in ActiveSupport]
我有以下型号。 Book has Articles (Article has foreign key to Book) Article has Images (Article has upto #ma
我创建了一个页面,该页面显示了单个 类别下的所有帖子,即如果我单击类别音乐,我将获得与音乐类别相关的所有文章。 但我的目标是创建一个过滤选项,它可以过滤掉某些类别,并且只显示与您过滤的类别相关的所有帖
我使用这样的代码: $query = "SELECT introtext FROM #__content WHERE alias = '$alias'"; $db->setQuery($query);
我在主页上设置了一些特色文章。显示的所有文章似乎都剩下太多填充。我知道足以进入 css 并在 layout.css 上编辑 .itembody 的填充或边距,但似乎没有任何改变。我希望我的文章通过模块
ORM 中存储文章及其修订的最佳实践是什么?当我自己用SQL存储时,我曾经有以下结构: articles [id, parent_id, name, text] 通过parent_id,我可以轻松识
我的 HTML : Interest About Interest
我正在用jade构建一个nodejs、express、mongodb博客。 我的文件夹结构是:项目/ 模块/ 观点/ 索引.jade 应用程序.js 文章提供者内存.js 文章provider-mon
我的问题比较具体,至少对我来说是这样。具体是因为在做了很多搜索之后我找不到任何有用的东西。因此,正如标题所说,我正在寻找一种算法,它会发现输入中给出的两篇文章是否“匹配”,但不是通常的字符串匹配意义上
关闭。这个问题是off-topic .它目前不接受答案。 9年前关闭。 锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我无法弄清楚动态编程的原
我有这个问题。我正在建立一个社交网站,我必须在两栏中创建帖子。父容器是一个部分,元素“post”是样式为 float: left 的文章。我如何让滑到那些较短的下方创建的空白空间的帖子? 最佳答案 c
这里有几个关于文件与数据库的问题,但我仍然不确定使用什么以及为什么在我的案例中应该使用它。 我的网站上有很多 HTML 文章(长度在几百到几千字之间)。在数据库 (MySQL) 中,我有一个没有搜索索
微信公众号文章 Semantic Kernel —— LangChain 的替代品? [1] ,它使用的示例代码是Python ,他却发了这么一个疑问: 支持的语言对比(因为 Sem
我想编写一个 polymer 元素来显示一些 WordPress 文章。 http://www.jsv-lippstadt.de/?json=get_category_posts&slug=app
我是一名优秀的程序员,十分优秀!