У меня серьезные трудности с привязкой столбца сетки combobox
.
У меня есть grid
, в котором каждая строка представляет элемент. Мой элемент имеет свойство "NumberPhase"
.
Я хочу связать ItemsSource
определенного столбца combobox
. Список значений должен быть разным для разных строк.
При привязке только к свойству моего элемента он отлично работает:
<telerik:gridviewcomboboxcolumn x:name="sensorCountColumn" edittriggers="CellClick"
width="*" itemssourcebinding="NumberPhase" datamemberbinding="{Binding FactorType, Converter={StaticResource enumDescriptionConverter}, ConverterParameter=FACTOR_TYPE}"
isreadonlybinding="{Binding IsThreePhaseParentAndNotDeleted, Converter={StaticResource invertBooleanConverter}}"
editorstyle="{StaticResource radComboBoxStyle}">
Но я хочу добавить dependency
в другую переменную (которая не относится к элементу, ограниченному этим grid's row
). Итак, я попробовал что-то вроде этого:
<telerik:gridviewcomboboxcolumn x:name="sensorCountColumn" edittriggers="CellClick"
width="*" datamemberbinding="{Binding FactorType, Converter={StaticResource enumDescriptionConverter}, ConverterParameter=FACTOR_TYPE}"
isreadonlybinding="{Binding IsThreePhaseParentAndNotDeleted, Converter={StaticResource invertBooleanConverter}}"
editorstyle="{StaticResource radComboBoxStyle}">
<telerik:GridViewComboBoxColumn.ItemsSource>
<MultiBinding diagnostics:PresentationTraceSources.TraceLevel="High" Converter="{StaticResource sensorCountConverter}">
<Binding Path="NumberPhase" />
<Binding Path="Data.PanelConfig.ID" Source="{StaticResource editedLocation}" />
</MultiBinding>
</telerik:GridViewComboBoxColumn.ItemsSource>
...
</telerik:gridviewcomboboxcolumn>
При этом мой преобразователь получил первое значение (NumberPhase) как DependencyProperty
. UnsetValue
. Второе значение просто прекрасно.
Я подумал, может быть, мне следует изменить имя тега на ItemsSourceBinding
вместо ItemsSource
(потому что в первом примере я использовал это имя для одной переменной, и это сработало). Итак, я попробовал что-то вроде этого:
<telerik:gridviewcomboboxcolumn x:name="sensorCountColumn" edittriggers="CellClick"
width="*" datamemberbinding="{Binding FactorType, Converter={StaticResource enumDescriptionConverter}, ConverterParameter=FACTOR_TYPE}"
isreadonlybinding="{Binding IsThreePhaseParentAndNotDeleted, Converter={StaticResource invertBooleanConverter}}"
editorstyle="{StaticResource radComboBoxStyle}">
<telerik:GridViewComboBoxColumn.ItemsSourceBinding>
<MultiBinding diagnostics:PresentationTraceSources.TraceLevel="High" Converter="{StaticResource sensorCountConverter}">
<Binding Path="NumberPhase" />
<Binding Path="Data.PanelConfig.ID" Source="{StaticResource editedLocation}" />
</MultiBinding>
</telerik:GridViewComboBoxColumn.ItemsSourceBinding>
</telerik:gridviewcomboboxcolumn>
Результатом стал exception
с сообщением:
«MultiBinding» не может быть установлен для свойства «ItemsSourceBinding» типа «GridViewComboBoxColumn». «MultiBinding» может быть установлен только для свойства DependencyProperty объекта DependencyObject.
Я также читал о шаблоне прокси, но думаю, что не могу использовать его в моем случае, потому что когда я попробуйте поместить его в сетку, я получаю следующее сообщение:
Тип «RadGridView» не поддерживает прямое содержимое. Я не могу разместить его снаружи, потому что тогда у меня возникнет проблема с привязкой к нужному элементу строки сетки.
Любое предложение будет оценено!!