에 나는이 같은 DataGridComboBoxColumn 있습니다바인드 ClipboardContentBinding는 DisplayMemberPath
ElementStyle이 같은 ComboboxPairs의 목록에 결합<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>
:
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; }
}
이렇게하면 콤보 상자에 유용한 이름을 표시 할 수 있지만 float를 t에 바인딩 할 수 있습니다 사용자가 값을 선택할 때 viewmodel. 그러나 행을 선택하여 복사하면 부동 소수점 값이 반환됩니다. 나는 도움이되는 이름을 얻고 싶다. DataGridComboBoxColumn의 ClipboardContentBinding을 해당 DisplayMemberPath에 바인딩하는 방법이 있습니까? 아니면이 방법이 잘못 되었습니까? 어떻게 그럴 수 있니?
거의 작동합니다. args.Item은 셀에 바인딩 된 float 대신 datagrid 행에 바인딩 된 항목으로 밝혀졌습니다. 그러나 그것은 내가 "FriendlyOffset"속성을 만들고 ClipboardContentBinding에 바인딩 할 수 있다는 것을 깨닫게했습니다. 감사 :) – ConditionRacer