BindingErrorListener In WPF
1969 ワード
WPFでバインディングエラーが発生し、デバッグ時にOutPut(出力)ウィンドウでバインディングエラー情報が表示されるのが一般的です.
そこで私は以下にこれらのエラー情報を表示します.
BindingErrorListenerクラス
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
そしてViewModelかapp.xaml.csで呼び出せばいい
BindingErrorListener.Listen(a => MessageBox.Show(a));
これで弾枠の形で表示されます.
そこで私は以下にこれらのエラー情報を表示します.
BindingErrorListenerクラス
public class BindingErrorListener:TraceListener
{
private Action<string> _logAction;
public static void Listen(Action<string> logAction)
{
PresentationTraceSources.DataBindingSource.Listeners.Add(
new BindingErrorListener() { _logAction = logAction });
}
public override void Write(string message)
{
}
public override void WriteLine(string message)
{
_logAction(message);
}
}
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
そしてViewModelかapp.xaml.csで呼び出せばいい
BindingErrorListener.Listen(a => MessageBox.Show(a));
これで弾枠の形で表示されます.