2016-05-11 19 views
0

現在、ボタン付きのWPFデータグリッドがあります。エラーがCommandParameterオブジェクトを文字列に変換できません

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

私は次のエラーを取得する: は暗黙的に「文字列」に型「オブジェクト」に変換できません。明示的な変換があります(キャストがありませんか?)

答えて

1

行います

string url = AVL3URL; 

これは次のようになります。

string url = (string)AVL3URL; 
0

オブジェクトをStringに明示的に変換する必要があります。

代わりのstring url = AVL3URL;

あなたがここにオブジェクトを文字列に設定しようとしているstring url = Convert.ToString(AVL3URL);

0

オブジェクトは」doesnのを暗黙的に文字列にキャストされません。

string AVL3URL = ((Button)sender).CommandParameter.toString(); 
関連する問題