- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的应用程序中使用 Caliburn.Micro。我想做的是:
INotify...Changed
及其实现,因为它有效):
BindableCollection<LicenceInfo> AvailableLicences { get; set; }
LicenceInfo ActiveLicence { get; set; }
AvailableLicences
和
ActiveLicence
.到现在为止还挺好。
ItemsControl
其中包含
RadioButton
s 和一个看不见的
FrameworkElement
转至
MyConverter
,我在其中提取
DataContext
的
Self
和看不见的
FrameworkElement
(其
DataContext
绑定(bind)到 ViewModel)并将它们与(覆盖)
LicenceInfo.Equals()
进行比较:
<FrameworkElement Name="ActiveLicence" Visibility="Collapsed" />
<ItemsControl Name="AvailableLicences">
<ItemsControl.ItemTemplate>
<DataTemplate>
<RadioButton cal:Message.Attach="[Event Checked] = [Action ChangeActiveLicence($dataContext)]">
<RadioButton.IsChecked>
<MultiBinding Converter="{StaticResource MyConverter}" Mode="OneWay">
<Binding RelativeSource="{RelativeSource Self}" />
<Binding ElementName="ActiveLicence" />
</MultiBinding>
</RadioButton.IsChecked>
[...]
<Binding x:Name="ActiveLicence" />
或
<Binding Path="ActiveLicence" />
作为第二个参数并删除不可见的
FrameworkElement
不起作用,ViewModel 属性未附加到绑定(bind)。
MultiBinding
.任何类似于 Caliburn.Micro 操作的操作,例如处理
Checked
的操作。事件也将受到欢迎。有任何想法吗?
最佳答案
从我的角度来看,如果在 LicenceViewModel 上添加标志不是一个选项,那么您在这里非常接近一个很好的解决方案:
不要使用容器框架元素,请尝试以下多重绑定(bind):
<MultiBinding Converter="{StaticResource MyConverter}" Mode="OneWay">
<Binding Path="DataContext" RelativeSource="{RelativeSource Self}" />
<Binding Path="DataContext.ActiveLicense" RelativeSource="{RelativeSource FindAncestor, AncestorType=ItemsControl}" />
</MultiBinding>
Equals()
修改转换器以比较两个对象,与具体类型无关。这样,您就不会弄乱不必要的对象,仍然可以正确分离 View 和 View 模型。
LicenseInfo
里面
LicenseInfoViewModel
s,尽管这需要一些基础设施来实现
LicenseInfo
的原始集合之间的同步。 s 在模型和包含
ViewModel
的集合上s。
ViewModel
当
ActiveLicense
为真而所有其他为假时属性变化。
关于wpf - 使 ViewModel 属性可用于绑定(bind)到 IsChecked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22402954/
我有一个选择“全部”复选框,我希望将其绑定(bind)到其他复选框的 (IsChecked || !IsEnabled)。 选中“全部”会选中所有启用的复选框。 取消选中“全部”会取消选中所有复选框。
我在运行时动态创建了一些复选框,现在我想知道其中一个是否被选中。我怎样才能做到这一点? for (int i = 0; i < cnt; i++) { cb =
当我在学习 Android 开发者基础类(class)时,我对下面的代码产生了以下疑问。 public void onRadioButtonClicked(View view) { /
是否弃用了 isChecked() 方法? 我正在为 android UI 编码并使用 UiAutomator Framework 那里没有显示这个方法 我正在尝试通过 isChecked() 验证一
这让我很生气。我有一个简单的 WPF 切换按钮,有两个 IsChecked 触发器。一个为真值,另一个为假值。未选中按钮时它工作正常,应用了我的 false 样式;但是,系统从不应用 IsChecke
如何使用单选按钮“IsChecked”属性控制文本框的可见性? 我有一个两个文本框,比如说 txtbox1 和 txtbox2,我想根据单选按钮 IsChecked 属性绑定(bind)这两个文本框的
所以我有一个复选框,它使用 WPF/MVVM 触发命令,这工作正常,但我想使用复选框的 IsChecked 属性作为命令参数。我试过这个。 但是我在输出窗口中收到一个错误,上面写着 System
我有两个单选按钮,我希望默认选择其中一个。我添加了 IsChecked="true" ,但它不起作用。我还尝试将其设置在窗口加载中。 但是当我单击第二个选项然后单击第一个选项时,一切正常。 它只是在第
我有以下用于切换按钮的 xaml:
我正在尝试构建一个函数来更改复选框选择上的文本,请检查以下内容... Jquery代码 $(document).ready(function() { if($('#active').is(':chec
我正在编写一个程序,其中有一个由一系列复选框组成的组合框。用户可以选择任意数量的复选框。之后,当他点击一个按钮时,我想检查所有复选框以查看哪些已被选中,哪些未被选中。 但我不知道该怎么做。我尝试了很多
这个问题在这里已经有了答案: How do I compare strings in Java? (23 个回答) 关闭 7 年前。 我在 Activity 上使用复选框来确定需要将对象添加到哪个列
选中复选框时,以下代码不起作用。无论复选框是否被选中,它都会跳转到“else”语句。 void MainWindow::runButtonClicked() {
我有一个使用 C# 编写的 UWP 应用程序。我有一个单选按钮,用户可以选中或取消选中。默认情况下它是选中的,用户可以在需要时取消选中它。但是,当他们取消选中它时,RadioButton.IsChec
这是我要实现的目标的简化示例; " id="myCheckBox" /> 然后在我后面的代码中; public partial class _Default : System.Web.UI.Page
找到了很多例子,但没有一个合适!我的列表框是 Result 对象的列表。可以在列表框中选中或取消选中结果以将其标记为“允许”传输。 文件列表模板
Android version: 3.1 API version: Android 2.2 Device: Motorola MX604 我动态创建了 CheckedTextView 项目的多选 Li
我正在尝试使用 fragment 构建我的 PreferenceActivity。我有一个包含两个 CheckBoxPreferences 的 PreferenceFragment: 我的 Fra
我正在努力测试类的属性值是否在单击切换器后发生变化。 所以这里我有组件类(没什么复杂的-.-): import { Component, EventEmitter, Input, OnInit, Ou
我有带有 ToggleButtons 数量的自定义控件: ...
我是一名优秀的程序员,十分优秀!