Altough the project issue was a long ago, I dug out a piece of code which I hope would help you to solve your problem. It worked in our project with the URLs we passed.
Code behind part:
private void IdentifyDetailsDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
string row = IdentifyDetailsDataGrid.SelectedItem.ToString();
int at = row.IndexOf(",");
string web_proc = row.Remove(0, (row.Length - (row.Length - at - 1)));
string website = web_proc.Remove(web_proc.Length - 1, 1);
System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(website), "_blank");
}
catch
{
}
}
XAML part:
<slData:DataGrid x:Name="IdentifyDetailsDataGrid" Grid.Row="4"
AutoGenerateColumns="False"
HeadersVisibility="All"
Background="White"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto"
SelectionChanged="IdentifyDetailsDataGrid_SelectionChanged"
Margin="0,1,0,0">
<slData:DataGrid.Columns>
<slData:DataGridTextColumn Binding="{Binding Key}" Header="Field" FontWeight="Bold"/>
<slData:DataGridTextColumn Binding="{Binding Value}" Header="Value" />
</slData:DataGrid.Columns>
</slData:DataGrid>
If I take a look at it right now, what it does, is, that if you click on an element of a datagrid, it examines whether the clicked value is a URL or not. If it isnt, nothing happens (this is what the catch is there for) but if there is a URL it is opened in a new browser window.
I am not a guru in this stuff, and regarding the method it may seem pre-historic but it was working for us. 🙂
I hope my post was helpful.
cheers
Tamas