gpt4 book ai didi

c# - 我可以将剪贴板作为命令参数发送吗?

转载 作者:行者123 更新时间:2023-11-30 12:43:50 25 4
gpt4 key购买 nike

使用 MVVM 我有一个实现命令的 ViewModel。我想接收剪贴板内容作为参数并使用它做一些事情。

XAML:

    <Button Command="{Binding Path=ClipBoardAction}" 
CommandParameter="{Binding SomeAwesomeCodeHereToPassCurrentClipboard}" />

c#:

private void ClipBoardAction(object parameter) {
//parameter is clipboard OR CLIPBOARD DATA like string[]
}

这可能吗?如果是这样,我在 XAML 中绑定(bind)到什么?

编辑:目前的解决方法是将按钮连接到 Click 事件并在胶水后面放入一些代码。

    private void Button_Click(object sender, RoutedEventArgs e) {
//manually send command to object
string[] clipboard = Clipboard.GetText().Split(new Char[] { '\n' });
var but = sender as Button;
var viewModel = (FooViewModel)but.DataContext;
if (viewModel.ClipBoardAction.CanExecute(null)){
viewModel.ClipBoardAction.Execute(clipboard);
}
}

最佳答案

Clipboard类提供剪贴板数据作为方法而不是属性,绑定(bind)只能通过属性来完成,不,你不能那样做。

编辑

您可以通过实现自定义 converter 来解决问题但我认为它不值得:

public class ClipboardConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture) {
return Clipboard.GetData(value as string);
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture) {
throw new NotImplementedException();
}
}

关于c# - 我可以将剪贴板作为命令参数发送吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30177376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com