|
■No77821 (Hongliang さん) に返信
> DataGridHyperlinkColumnは文字通りColumnであって、あくまで列を表現するだけです。
> 実際にリンク文字列を表示するのは、その列に属している各行のセルになります。
> 各行に設定されているオブジェクトから(とは限らないけど)リンク文字列を引っ張ってくるためにはContentBindingを設定します。
>
> ところで、コードからって言うのはバインディングを除外するという含意があるんですかね。
> // WPFのDataGridってバインディングなしで使えたっけ?
回答ありがとうございます。
ContentBindingの設定で行えるということなので、その辺りを調べながら試行錯誤させて頂きました。
しかしながら解決が出来ておりません。
ContentBindingに設定するものが、BindingBaseクラスのものというのがわかりましたが、
あれBindingBaseクラスって抽象クラス.....
コードをお見せしますので、
ここがいけない、という箇所を教えていただけると幸いです。
//コンストラクタ内 変数の名前等、適当なものに。
DataTable dataTable = new DataTable("dataTable");
dataGrid.Columns.Add(new DataGridTextColumn() { Header = Title, Binding = new Binding("Title") });
dataGrid.Columns.Add(new DataGridTextColumn() { Header = Url, Binding = new Binding("Url") });
dataTable.Columns.Add(new DataColumn("Title", typeof(string)));
dataTable.Columns.Add(new DataColumn("Url", typeof(DataGridHyperlinkColumn)));
DataGridHyperlinkColumn dgh;
DataRow newRowItem;
foreach (var item in Data)
{
newRowItem = dataTable.NewRow();
newRowItem["Title"] = "Test";
//問題の箇所 どう設定すれば......
dgh = null;
dgh = new DataGridHyperlinkColumn();
//試してみたが駄目だった書き方
dgh.ContentBinding = new Binding("http〜〜〜");
newRowItem["Url"] = hhh;
dataTable.Rows.Add(newRowItem);
}
dataGrid.DataContext = dataTable;
以上です。よろしくお願いします。
/*
コード上、というのはcsファイルで、という意味でしかないです。
誤解させてすみません。
*/
|