Я пытаюсь реализовать простую функциональность буфера обмена в разделе моего шаблона сетки данных, чтобы можно было скопировать содержимое этой ячейки одним щелчком мыши, однако, поскольку все это генерируется динамически, я не уверен, как именно это сделать.
Вот визуальное представление, которое у меня есть на данный момент:

Я хочу, чтобы поле, относящееся к кнопке, копировалось в буфер обмена, когда я нажимаю маленькую кнопку с глифом на ней. Ниже приведен мой Xaml и соответствующий код. Я не думаю, что UraniumUI на это как-то повлияет, но должен отметить, что я использую его для визуальных элементов. Я вырежу все ненужное или стилизующее с помощью... для экономии места
Xaml:
Код: Выделить всё
...All Closing Tags
...Button Image Was Here
..All Closing Tags
Код:
Код: Выделить всё
public class MibDataGridInfoItem
{
public string? Name { get; set; }
public string? Value { get; set; }
public string? Clipboard_Button { get; set; }
}
public class InfoDataGrid : BindableObject, INotifyPropertyChanged
{
public ObservableCollection gridItems { get; set; } = new();
...
public void newSelectedItem (myItemType selectedItem)
{
Type sourceType = typeof(myItemType );
PropertyInfo[] visibleProps = sourceType.GetProperties();
gridItems.Clear();
foreach (PropertyInfo prop in visibleProps)
{
var value = prop.GetValue(selectedItem);
gridItems.Add(new GridInfoItem
{
Name = prop.Name,
Value = value.ToString(),
Clipboard_Button = value.ToString()
});
}
}
}
Код: Выделить всё
private async void CopyToClipboard(object sender, EventArgs e)
{
await Clipboard.Default.SetTextAsync("Just Testing here");
}
Первое, что нужно сделать, — заменить «Нажатие» на «Команду» в xaml
Код: Выделить всё
Код: Выделить всё
public ICommand CopyCellInfo => new Command(CopyToClipboard);
private async void CopyToClipboard()
{
await Clipboard.Default.SetTextAsync(Value);
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... tatemplate
Мобильная версия