错误无法将 CommandParameter 对象转换为字符串

error can not Convert CommandParameter object to String

我目前有一个带按钮的 WPF 数据网格。

<DataGrid x:Name="AVL3DataGrid" IsReadOnly="False" ItemsSource="{Binding AVL3DB}" HorizontalAlignment="Stretch" Width="auto" RenderTransformOrigin="-1.802,-5.399" VerticalAlignment="Stretch" Margin="0,36,0,0">
                        <DataGrid.Columns>
                            <DataGridTemplateColumn>
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <Button Name="LaunchAVL3URLButton" Click="LaunchAVL3URLButton_Click" CommandParameter="{Binding Path=AVL3URL}">Launch</Button>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                        </DataGrid.Columns>
                    </DataGrid>

当我单击按钮时,我希望它获取 URL 并将其传递到 Web 浏览器,但我不知道如何将对象转换为字符串。

private void LaunchAVL3URLButton_Click(Object sender, RoutedEventArgs e)
        {
            object AVL3URL = ((Button)sender).CommandParameter;

            string url = AVL3URL;
            string browserPath = GetStandardBrowserPath();
            if (string.IsNullOrEmpty(browserPath))
            {
                MessageBox.Show("No default browser found!");
            }
            else
            {
                Process.Start(browserPath, url);
            }
        }

我收到以下错误: 无法将类型 'object' 隐式转换为 'string'。存在显式转换(是否缺少转换?)

您需要将对象显式转换为字符串。

而不是string url = AVL3URL;

string url = Convert.ToString(AVL3URL);

您正在尝试将对象设置为此处的字符串:

 string url = AVL3URL; 

这应该是:

string url = (string)AVL3URL;

对象不会隐式转换为字符串。

string AVL3URL = ((Button)sender).CommandParameter.toString();