В привязке, где вы указываете только Path
, механизм привязки будет неявно использовать DataContext
в качестве источника. Вам нужно только явно указать источник, чтобы избежать этого (поскольку вы не хотите, чтобы текущая строка была вашим источником).
В одном из моих тестовых приложений у меня есть класс Employee
, который имеет несколько свойств, включая Occupation
, чтобы использовать его со столбцом ComboBox, вам нужен список профессий, где и как вы определяете этот список вам, один из способов сделать это в ресурсах окна или DataGrid:
<col:ArrayList x:Key="Occupations">
<sys:String>Programmer</sys:String>
<sys:String>GUI Designer</sys:String>
<sys:String>Coffee Getter</sys:String>
</col:ArrayList>
где col
- пространство имен: clr-namespace:System.Collections;assembly=mscorlib
Чтобы использовать это сейчас, я могу указать в DataGrid.Columns
следующее:
<DataGridComboBoxColumn SelectedValueBinding="{Binding Occupation}"
ItemsSource="{Binding Source={StaticResource Occupations}}"/>
Это позволит мне назначить одно из трех «занятий» из моего массива как Occupation
рассматриваемого сотрудника.
Еще один способ настроить свой список источников - использовать статическое свойство некоторого класса, которое вы можете использовать:
<DataGridComboBoxColumn ... ItemsSource="{Binding Source={x:Static namespace:Class.Property}}"/>