【发布时间】:2014-01-15 22:05:14
【问题描述】:
我有一个像这样的 DataGridComboBoxColumn:
<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; }
}
这允许我在组合框中显示一个有用的名称,但在用户选择一个值时将一个浮点数绑定到视图模型。但是,当我选择一行并复制它时,我得到了浮点值。我想得到有用的名字。有没有办法将 DataGridComboBoxColumn 的 ClipboardContentBinding 绑定到它的 DisplayMemberPath,或者这是错误的方法?我还能怎么做?
【问题讨论】:
标签: c# wpf xaml datagrid clipboard