我希望能够DataGrid
通过外部设置 a 的当前选定行>单元格的值ComboBox
。
我拥有的代码在 setter 部分工作正常,但无法使ComboBox
所选值与网格值匹配......似乎我缺少映射。
这是我所拥有的:
1- Datagrid 绑定到ObservableCollection<Object>
:
<DataGrid ItemsSource="{Binding}"
SelectedItem="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}, AncestorLevel=2},
Path=SelectedCounterparty, Mode=TwoWay}">
2-ObservableCollection<Object>
有一个我应该绑定到组合框的属性(即组合框选定的项目应该采用该属性值):
public CurrenciesEnum Ccy
{
get { return this._ccy; }
set
{
if (value != this._ccy)
{
this._ccy = value;
NotifyPropertyChanged("Ccy");
}
}
}
3- Combobox 源是一个枚举:
public enum CurrenciesEnum { USD, JPY, HKD, EUR, AUD, NZD };
4-组合框的当前映射:
<ObjectDataProvider x:Key="Currencies" MethodName="GetNames" ObjectType="{x:Type System:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="ConfigManager:CurrenciesEnum" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
<ComboBox ItemsSource="{Binding Source={StaticResource Currencies}}" SelectedItem="{Binding Ccy, Mode=TwoWay}"/>
工作原理:能够通过组合框设置网格中当前选定项的“Ccy”属性。
什么不: ComboBox 选定的项目在更改行时与网格中的当前选定项目不匹配(并且默认为 USD 或先前选择的值),换句话说,似乎没有正确绑定。关于如何解决这个问题的任何想法