我在XAML有一个组合框,写为
<ComboBox ItemsSource="{Binding Path=Options}"
SelectedItem="{Binding Path=CurrentValue}"/>
并且“货币价值
”在ViewModel类中实现为
private string m_CurrentValue;
public string CurrentValue
{
get { return this.m_CurrentValue; }
set
{
if (m_CurrentValue != value)
{
if (IsValid(value))
{
this.m_CurrentValue = value;
SetData(this.m_CurrentValue);
}
this.SendPropertyChangedEvent(nameof(this.CurrentValue));
}
}
}
在这里设置货币值
之前,它会根据某些条件进行验证。我的目的是在验证失败时将组合框选择更改为先前的值。这不适用于组合框,但是此方法非常适用于CheckBox控件——下面给出的代码片段。
<CheckBox VerticalAlignment="Center" IsChecked="{Binding Path=CurrentValue}" Width="15" IsEnabled="{Binding Path=IsEnabled}"/>
private bool m_CurrentValue;
public bool CurrentValue
{
get { return this.m_CurrentValue; }
set
{
if (m_CurrentValue != value)
{
if (IsValid(value))
{
this.m_CurrentValue = value;
SetData(this.m_CurrentValue);
}
this.SendPropertyChangedEvent(nameof(this.CurrentValue));
}
}
}
有什么方法可以让这个为ComboBox工作吗?任何替代实现也可以。
创建一个包含combobox的用户控件,它将满足您的需求。有依赖属性,你可以跟踪,如果需要,改变由于状态值,你有设置,以处理操作中包含的组合框。
创建具有当前组合选择的索引的内部状态变量。当操作检测到返回前一状态时,将内部组合框设置为该值。
有什么方法可以使ComboBox
工作吗?任何替代实现也可以。
您可以使用调度程序将后备字段设置为上一个值,如下所示:
private string m_CurrentValue;
public string CurrentValue
{
get { return this.m_CurrentValue; }
set
{
if (m_CurrentValue != value)
{
string previousValue = m_CurrentValue;
//set the field
this.m_CurrentValue = value;
if (IsValid(value))
{
SetData(this.m_CurrentValue);
this.SendPropertyChangedEvent(nameof(this.CurrentValue));
}
else
{
Application.Current.Dispatcher.BeginInvoke(new Action(() =>
{
m_CurrentValue = previousValue;
this.OnPropertyChanged(nameof(this.CurrentValue));
}), DispatcherPriority.ApplicationIdle);
}
}
}
}
请参考链接了解更多信息。
问题内容: 我有一个复选框列表,其中至少一个是强制性的。我试图通过AngularJS验证来实现这一点,但是很难。下面是我的代码: 以下是plunker中的代码:http ://plnkr.co/edit/Bz9yhSoPYUNzFDpfASwt?p=preview 有没有人在AngularJS上做到这一点?使复选框成为必需,迫使我选择所有复选框值。AngularJS文档中也未记录此问题。 问题答案
我有一个带有组合框的xaml。由于某种原因,我在那里有一些项目,我不能选择它们,当我选择一个项目时,它通常不允许我更改我的选择,如果它更改了,它仅适用于某些值。这是代码: 我希望我写的很清楚,因为我把它从电脑复制到了手机上。基本上,我有所有的用户,并按部门对他们进行分类。用户只能看到他所在部门的文档,并且可以选择绑定词典中可用的文档。如果不可用,组合框中的项目将为红色且不可检查。这个管用。唯一没有
问题内容: 我们正在使用Selenium WebDriver和JBehave在我们的Web应用程序上运行“集成”测试。我有一种方法,可以在表单输入中输入一个值。 但是,当我尝试使用它在下拉列表中选择一个项目时,它(毫无疑问)失败了 java.lang.UnsupportedOperationException:您只能设置作为输入元素的元素的值 如何在组合中选择一个值? 问题答案: 这是怎么做的:
我在后台有< code>ViewModel(实现< code > INotifyPropertyChanged )和类< code>Category,它只有一个< code>string类型的属性。我的ComboBox SelectedItem绑定到类别的实例。当我更改instance的值时,SelectedItem没有更新,Combobox也没有更改。 编辑:代码 组合框: 物业: 我尝试的是:
所以,我有一个奇怪的问题,我从组合框列表中选择一个项目,为了填充第二个组合框,我必须首先从第一个组合框中再次选择单词,而不是从项目列表中,而是单词本身。只有这样,代码才会注册我选择了该项目。我拥有的代码是简单的$variable.SelectedItem。参见下面的代码; 我想做的就是从下拉列表中选择位置“医院”,然后第二个名为“$ComboBox_Printer”的组合框填充我服务器中的打印机名
我有一个奇怪的问题。我在JavaFX中使用了一个ComboBox,其中每一项都是一个HBox,是一个图像和一个标签的组合。 是字符串的数组列表。只是一个