kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

データバインディングをデバッグ出力に

データバインディング便利なんですが、「いまどんな値なんだらほい?」ということは、コンバータでも通してそこから出力しないとわかりませんでした。.NET Framework 3.5では強化され、System.Diagnostics名前空間を追加して、PresentationTraceSources.TraceLevelプロパティを追加すれば「デバッグ出力」のウィンドウにざらざらと出力されます。
High,Medium,Lowの三種類が選択可能。

<Window x:Class="WpfBindSample2.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:diag="clr-namespace:System.Diagnostics;assembly=WindowsBase"
(略)
    <RotateTransform  CenterX="96" CenterY="84" Angle="{Binding ElementName=slider1, 
    Path=Value, diag:PresentationTraceSources.TraceLevel=High,
    Converter={StaticResource dataConverter}}"/>

むぅ、xamlのキーワードハイライトはないのか。

System.Windows.Data Warning: 47 : Created BindingExpression (hash=52697953) for Binding (hash=44419000)
System.Windows.Data Warning: 49 : Path: 'Value'
System.Windows.Data Warning: 51 : BindingExpression (hash=52697953): Default mode resolved to OneWay
System.Windows.Data Warning: 52 : BindingExpression (hash=52697953): Default update trigger resolved to PropertyChanged
System.Windows.Data Warning: 53 : BindingExpression (hash=52697953): Attach to System.Windows.Media.RotateTransform.Angle (hash=22597652)
System.Windows.Data Warning: 55 : BindingExpression (hash=52697953): Use Framework mentor
System.Windows.Data Warning: 58 : BindingExpression (hash=52697953): Resolving source
System.Windows.Data Warning: 60 : BindingExpression (hash=52697953): Framework mentor not found

XAMLに書けばいいだけなんで便利といえば便利なんですが、ますますデザイナとの分業が…。デザイナは(Static/Dynamicな)リソースだけ作れということなんですかね。