У меня есть проект WPF с DataGrid в моем окне, и изначально я просто установил его ItemsSource на коллекцию объектов, а сетка автоматически сгенерировала столбцы на основе их свойств. На этом этапе при запуске приложения я, как пользователь, мог щелкнуть ячейку (в пользовательском интерфейсе), и это позволило бы мне выбрать/перетащить-выбрать часть текста в этой ячейке.
Теперь я отключил автоматическое создание столбцов и определил пользовательские столбцы, привязав их к выбранным свойствам указанных объектов. И теперь щелчок по ячейке просто выделяет всю ячейку и все ее содержимое. Я просмотрел все свойства DataGrid и DataGridCell, но не вижу ничего, что явно могло бы изменить это поведение.
Как я могу настроить определенный вручную DataGridTextColumn в XAML, чтобы текстовое содержимое его ячеек было частично доступным для выбора, а не только для выбора всего содержимого ячейки?
DataGridTextColumn ведет себя одинаково независимо от того, сгенерирован он автоматически или нет. Возможно, вы устанавливаете IsReadOnly = True. Это может быть одной из причин того, что он ведет себя так, как вы описываете. В противном случае вы должны предоставить нам код и данные, демонстрирующие ваш случай.
Я хочу поблагодарить RolandJS, его ответ заставил меня понять, что я, вероятно, мог бы проверять свойства элементов управления WPF во время отладки, и это привело меня к живому визуальному дереву, увидев, что все свойства одинаковы, что привело меня к привязке, которая была mode = Одностороннее движение.
Таким образом, в основном текст в ячейках DataGrid может быть выделен/выделен перетаскиванием только частично, если привязка находится в режиме, который позволяет изменить источник, потому что это то, что вы потенциально делаете.