思いついたのでLINQ Padでさくっと試してみた。
open System open System.Windows open System.Windows.Controls module WPF = /// 添付プロパティと値の組を作成する let (@<<) (dp : DependencyProperty) (value : obj) = (dp, value) /// DependencyObjectに添付プロパティをセットする let withAProp<'T when 'T :> DependencyObject> (t : 'T) (dps : seq<(DependencyProperty * obj)>) = dps |> Seq.iter (fun dp -> t.SetValue(fst dp, snd dp)) t open WPF // 依存プロパティつきのボタンを作成する let b = withAProp (Button(Content = "OK")) [ Grid.RowProperty @<< 1; Grid.ColumnProperty @<< 1; ToolTipService.ToolTipProperty @<< "ToolTip" ] // 価の確認 b.Content.Dump() b.GetValue(Grid.RowProperty).Dump() b.GetValue(ToolTipService.ToolTipProperty).Dump()
実行結果は以下の通り。
OK 1 ToolTip
うん、少しすっきりかなぁ???