Мне пришлось переписать мою проблему.Часть в кавычках ниже - это сообщение перед редактированием.
У меня есть два свойства: capacitiveCurrent
и ShowProductSum
.До каких-либо изменений в моем приложении MVVM я связывал capacitiveCurrent
со значением, которое было установлено в конструкторе - это всегда было 15.
capacitiveCurrent
находится в другом классе LineOut
, код:
свойство CapitiveCurrent
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
завершена .. почти.Но что я ожидаю от этих двух свойств, так это то, что я хочу, чтобы они отображались в ComboBox.Это то, что у меня есть:
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; }
ComboBox :
<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 присутствует, но в выпадающем списке в выпадающем списке ничего нет.поле со списком.Все реализует интерфейс INotifyPropertyChanged.
Заранее спасибо.
Я абсолютный новичок в MVVM C #.Я пытаюсь связать два свойства, которые находятся в двух разных классах.
Первое свойство - public double capacitiveCurrent { get; set; }
из одного класса, и до этого я использовал это свойство для просмотра его с обычной привязкой - было показано инициализированное значение.
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 .../>`
Я пытаюсь сделать так, чтобы эти два свойства были перечислены в ComboBox и:
- Мне нужно
capacitiveCurrent
чтобы редактировать из вида,
productLengthShortCircuitCurrent
должно быть суммой всех установленных значений (таким образом, произведение суммы) .. я должен вызвать функцию, чтобы сделать это, а затем привязать ее к ComboBox?
** Мне удалось установить и получить это свойство, и я получил приведенное ниже свойство ProductSum
. Все дело в отображении двух свойств в ComboBox.
Я действительно запутался.Искал ответ два дня, не придумал идеи.Может быть, я не знаю, как это сделать, но ... Пытался связать эти два свойства с интерфейсом с чем-то вроде public
IConnectedProperties Categories
и личным списком _category
с помощью getter и setter.