2
我有這樣的DataGridComboBoxColumn:綁定ClipboardContentBinding到的DisplayMemberPath
<DataGridComboBoxColumn
SelectedValueBinding="{Binding
Path=Offset,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="Key"
SelectedValuePath="Value">
...
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter
Property="ItemsSource"
Value="{Binding
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}},
Path=DataContext.Offsets}" />
</Style>
</DataGridComboBoxColumn.ElementStyle>
</DataGridComboBoxColumn>
的ElementStyle結合這樣ComboboxPairs的列表:
public ObservableCollection<ComboboxPair<float>> Offsets { get; set; }
Offsets = new ObservableCollection<ComboboxPair<float>>
{
new ComboboxPair<float>
{
Key = "Item 1",
Value = 1.23
}
...
};
而且ComboboxPair看起來是這樣的:
public class ComboboxPair<T>
{
public string Key { get; set; }
public T Value { get; set; }
}
這使我可以在組合框中顯示一個有用的名字,但要將一個浮點數綁定到t他在用戶選擇一個值時查看模型。但是,當我選擇一行並複製它時,我會得到浮點值。我想獲得有用的名字。有沒有辦法將DataGridComboBoxColumn的ClipboardContentBinding綁定到它的DisplayMemberPath,還是這是錯誤的方法?我還能怎麼做?
這幾乎可行。 args.Item原來是綁定到datagrid行的項目,而不是綁定到單元格的float。但它讓我意識到我可以創建一個「FriendlyOffset」屬性並將其綁定到ClipboardContentBinding。謝謝 :) – ConditionRacer