2016-05-11 4 views
0

В настоящее время у меня есть сетка данных WPF с кнопкой.ошибка не может преобразовать объект CommandParameter в String

<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 и передать его в веб-браузерах, но я не знаю, как преобразовать объект в строку.

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); 
      } 
     } 

Я получаю следующее сообщение об ошибке: Не удается неявно преобразовать тип «объект» в «строка». Явное преобразование существует (вы пропускаете листинг?)

ответ

1

Вы пытаетесь установить объект в строку здесь:

string url = AVL3URL; 

Это должно быть:

string url = (string)AVL3URL; 
0

Вам необходимо явно преобразовать объект в строку.

Вместо string url = AVL3URL;

сделать string url = Convert.ToString(AVL3URL);

0

Объект Безразлично» t неявно отбрасывается в строку.

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

 Смежные вопросы

  • Нет связанных вопросов^_^