我目前有一个带按钮的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);
}
}
我收到以下错误: 无法隐式转换类型&#39;对象&#39;到&#39;字符串&#39;。存在显式转换(您是否错过了演员?)
答案 0 :(得分:1)
您正在尝试将对象设置为字符串:
string url = AVL3URL;
这应该是:
string url = (string)AVL3URL;
答案 1 :(得分:0)
您需要明确地将对象转换为String。
而不是string url = AVL3URL;
做string url = Convert.ToString(AVL3URL);
答案 2 :(得分:0)
对象不会隐式转换为字符串。
string AVL3URL = ((Button)sender).CommandParameter.toString();