我不得不重写我的问题。下面的黑引号部分是编辑之前的这篇文章。
我有两个属性:capacitiveCurrent
和ShowProductSum
。在我的MVVM应用程序发生任何更改之前,我曾将capacitiveCurrent
与构造函数中设置的值绑定,该值始终为15。
capacitiveCurrent
被放在不同的类别LineOut
中,代码:
容量当前属性
private double _capacitiveCurrent;
public double CapacitiveCurrent
{
get { return _capacitiveCurrent; }
set
{
if (_capacitiveCurrent != value)
{
_capacitiveCurrent = value;
OnPropertyChanged("_capacitiveCurrent");
}
}
}
第二个属性放在MainWindow.xaml.cs
代码中:
ShowProductSum
public double _showProductSum;
public double ShowProductSum
{
get { return _showProductSum; }
set
{
if (_showProductSum != value)
{
_showProductSum = value;
OnPropertyChanged("ProductSum");
}
}
}
完成了设置和获取ShowProductSum
的逻辑。。几乎但我对这两个属性的期望是,我希望它们显示在组合框中。这就是我所拥有的:
private ObservableCollection<double> _comboBoxCapacitiveCurrent = new ObservableCollection<double>();
public ObservableCollection<double> ComboBoxCapacitiveCurrent
{
get
{
_comboBoxCapacitiveCurrent.Clear();
_comboBoxCapacitiveCurrent.Add(lineWy.capacitiveCurrent);
_comboBoxCapacitiveCurrent.Add(ShowProductSum);
return _comboBoxCapacitiveCurrent;
}
set
{
if (_comboBoxCapacitiveCurrent != value)
{
_comboBoxPradPojemnosciowy = value;
OnPropertyChanged("ComboBoxCapacitiveCurrent");
}
}
}
public double SelectedItem { get; set; }
组合框:
<DataGridTemplateColumn Header="Capacitive Current " HeaderStyle="{StaticResource ZwarcioweHeaderStyle}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox
ItemsSource="{Binding Path=ComboBoxCapacitiveCurrent}"
SelectedValue="{Binding Path=SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
>
</ComboBox>
</DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn>
CombBox存在,但combobox的下拉列表中没有任何内容。这个组合框下面有一些空白处。一切都实现了INotifyPropertyChanged接口。
提前谢谢。
我是MVVM C#的绝对初学者。我正在尝试绑定两个属性其位于两个不同的类别中。
第一个属性是来自的
public double capacitiveCurrent { get; set; }
一个类,在此之前,我使用此属性以法线查看它binding-显示了初始化的值。public double productLengthShortCircuitCurrent { get { return length* capacitiveShortCircuitCurrentwithGround; } set { } } is a combination of the two `length` and `capacitiveShortCircuitCurrentwithGround` both with getters and
setters。
ComboBox放置在内
`<DataGridTemplateColumn Header"ABC"> <DataGridTemplateColumn.CellTemplate <DataTemplate> <ComboBox .../>`
我想做的是将这两处房产列在组合框和:
- 我需要CCD_ 10从视图中进行编辑
productLengthShortCircuitCurrent
应该是所有设定值的和(因此是和积(。。我应该调用函数来执行此操作吗然后将其绑定到组合框**我已经设法设置并获得了这个属性,并获得了下面的
ProductSum
属性。。这一切都是为了展示两者组合框中的属性。我真的很困惑。找了两天答案都没找到想出一个主意。也许我的知识是肤浅的但是。。。尝试绑定具有类似
public IConnectedProperties Categories
的接口和具有的私有_category
列表的这两个属性getter和setter。
在您的setter:中修复此问题
_comboBoxPradPojemnosciowy = value; // binding will loose the instance
使用"清除(("one_answers"添加(("。当您更改实例时,绑定仍在旧实例中查找。
_comboBoxPradPojemnosciowy.Clear();
foreach (var item in value)
{
_comboBoxPradPojemnosciowy.Add(item);
}
OnPropertyChanged("ComboBoxCapacitiveCurrent");
如果ShowProductSum部分正在工作,也许这是您唯一需要修复的问题。
组合框绑定:
ItemsSource="{Binding Path=ComboItems}" SelectedItem="{Binding Path=SelectedItem}"
Carete属性和字段:
private ObservableCollection<double> comboItems = new ObservableCollection<double>(); public ObservableCollection<double> ComboItems{ get { this.comboItems.Clear(); this.comboItems.Add(prad_pojemnosciowy); this.comboItems.Add(iloczyn_dlugosc_pojemnościowy_prąd_zwarcia_z_ziemią); return this.comboItems; } set; } public double SelectedItem{get;set}
请记住通知的setters中"ComboItems"的属性已更改这两个属性。
将类的两个实例放在一个视图模型类中,并将其绑定到适当的值。"ViewModels"用于在视图和模型之间进行通信。因此,将与视图交互的所有逻辑都放在视图模型中。然后,您必须将视图模型绑定到视图,并在对象上设置数据上下文。如果你想在实例中绑定你的属性,你可以使用instance.property进行绑定
也许这些会对你有所帮助。的基本解释