Как сопоставить ClipboardContentBinding с DisplayPath комбинированного списка как часть DataGridTemplateColumn? - PullRequest
0 голосов
/ 08 октября 2019

У меня есть следующий DataGridTemplateColumn, и я пытаюсь привязать ClipboardContentBinding к пути DisplayMemberPath ComboBox. Является ли это возможным? Я могу привязать его к SelectedCatchDetailWrapper.GUID, используя ClipboardContentBinding = "{Binding SelectedCatchDetailWrapper.GUID}", но я хочу сопоставить его со свойством DisplayMemberPath комбинированного списка.

Категории - это просто

    ObservableCollection<GuidLookupItem> Categories 
    public class GuidLookupItem
    {
        public string GUID { get; set; }
        public string DisplayMember { get; set; }
    }
    <DataGrid x:Name="CatchDetails" 
           ItemsSource="{Binding CatchDetailWrappers}"
           SelectedItem="{Binding SelectedCatchDetailWrapper, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
        <DataGrid.Columns>
        <!--Category-->
        <DataGridTemplateColumn ClipboardContentBinding="???????">
            <!--Category Header-->
            <DataGridTemplateColumn.HeaderTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding DataContext.CategoryText, RelativeSource={RelativeSource AncestorType=DataGrid}}"/>
                </DataTemplate>
        </DataGridTemplateColumn.HeaderTemplate>
        <!--Category Cell-->
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <ComboBox ItemsSource="{Binding DataContext.Categories, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType=DataGrid}}"
                      IsTextSearchEnabled="True"
                      TextSearch.TextPath="DisplayMember"
                      DisplayMemberPath="DisplayMember"
                      SelectedValuePath="GUID"  
                      SelectedValue="{Binding CategoryGuid, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>

1 Ответ

0 голосов
/ 11 октября 2019

Вам следует изменить тип свойства CategoryGuid на GuidLookupItem.

Затем удалить SelectedValuePath="GUID", поскольку это вызывает ошибку во время выполнения.

Установить SelectedValue="{Binding YourPropertyName, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"

и ClipboardContentBinding="{Binding YourPropertyName.DisplayMember}"

public IEnumerable<YourType> CatchDetailWrappers { get; set; }
public class YourType
{
    public string OtherProperty { get; set; }
    [...]
    public GuidLookupItem YourPropertyName { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...