首页 > 其他分享 >调试WPF数据绑定的几种方法

调试WPF数据绑定的几种方法

时间:2024-11-18 14:40:17浏览次数:1  
标签:输出 错误 绑定 System WPF 调试 MyProperty

最近在帮一些小伙伴解决问题时,会遇到各种奇奇怪怪的问题。

比较典型的包括

命名空间错误,如System.Drawing.Brushes类型和System.Windows.Media.Brushes类型错误使用,导致在Converter中,颜色转换不生效。

数据绑定错误,这个导致的原因比较多,所以这里我们总结一下如何调试数据绑定。

 

1、使用Visuaal Studio错误列表的输出信息调试

假设我们定义了一个MyProperty属性

 1     public class MainWindowViewModel : INotifyPropertyChanged
 2     {
 3         private string myProperty;
 4 
 5         public string MyProperty 
 6         { 
 7             get => myProperty; 
 8             set
 9             {
10                 myProperty = value;
11                 PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("MyProperty"));
12             }
13         }
14 
15         public event PropertyChangedEventHandler PropertyChanged;  
16     }

 

在界面上进行绑定,因为拼写错误,将MyProperty写成了MyProprety

1     <Grid>
2         <Label Content="{Binding MyProprety}" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="30"></Label>
3     </Grid>

 

正常运行时,会发现界面没有内容显示,调试时发现属性赋值又正常,这个时候我们可以借助XAML绑定失败窗口查看输出信息

选择【调试】-》【窗口】-》【XAML绑定失败】菜单,打开XAML绑定失败窗口。

 

错误信息如下:

 

将绑定错误输出到文本文件

首先我们打开App.config,在configuration节点下增加如下内容

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <configuration>
 3 
 4         ......
 5 
 6     <!--诊断信息输出-->
 7     <system.diagnostics>
 8         <sources>
 9             <source name="System.Windows.Data" switchName="SourceSwitch">
10                 <listeners>
11                     <add name="textFileListener" />
12                 </listeners>
13             </source>
14         </sources>
15         <switches>
16             <add name="SourceSwitch" value="All" />
17         </switches>
18         <sharedListeners>
19             <add name="textFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="DebugTrace.txt" />
20         </sharedListeners>
21         <trace autoflush="true" indentsize="4" />
22     </system.diagnostics>
23 </configuration>


上面的配置可以创建一个跟踪源,它可以捕获从 System.Windows.Data命名空间中的调试信息。

每个跟踪源都可配置为输出两种级别的调试信息:警告(Warning)、错误(Error)或两者(ALL)。

每个跟踪源还可以有一个或多个监听器,作为调试输出的目标。

我们这里配置了一个System.Diagnostics.TextWriterTraceListener 将错误输出到 DebugTrace.txt 文件,也可以把调试信息输出到控制台或 XML 文件。

应用程序运行时,在运行目录下会生成一个DebugTrace.txt 文件,它里面记录了包括数据绑定的错误日志和其它任何程序运行时的错误信息。

 

说明:

1、除了TextWriterTraceListener还可以使用以下几种Listener:

ConsoleTraceListener 、DelimitedListTraceListener 、EventSchemaTraceListenerXmlWriterTraceListener。   2、诊断信息仅在调试时输出,不在Visual Studio中调试不会输出诊断信息   程序运行后,可以在运行路径下找到DebugTrace.txt,输出内容如下:

 

 

使用PresentationTraceSources.TraceLevel附加属性

 

 

参考资料

https://learn.microsoft.com/zh-cn/dotnet/api/system.diagnostics.presentationtracesources?view=windowsdesktop-8.0

标签:输出,错误,绑定,System,WPF,调试,MyProperty
From: https://www.cnblogs.com/zhaotianff/p/18552648

相关文章

  • 100 款支持 .NET 多版本的强大 WPF 控件库
    前言推荐一款集成了超过100款控件的流行XAML控件库,同时提供了一系列常用的.NET帮助类-CookPopularUI。它可以简化开发流程,让我们能够更加专注于核心业务逻辑的实现。让我们一起学习如何使用CookPopularUI,并详细了解其提供的丰富控件内容。项目介绍CookPopularUI不仅提供......
  • 基于WPF开发视频播放器
    在实际应用中,视频播放功能在很多软件中都会用到,将音频和视频集成到应用程序中不仅可以增强用户体验,还能起到事半功倍的效果。今天本文以一个简单的小例子,简述如何通过WPF中的MediaElement开发视频播放器,仅供学习分享使用,如有不足之处,还请指正!涉及知识点在本实例中,开发视频播放器......
  • SpringBoot运动心跳数据分析系统mef44(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景随着健康意识的不断提升,人们对自身运动状态及健康状况的关注度日益增强。心率作为反映人体健康状态的重要指标之一,其变化能够直观体现......
  • 通过将 USB to TTL 转换器连接到路由器的串口接口,并使用串口终端软件,你可以访问路由器
    USBtoTTL是一种常见的电子接口转换器,它将USB接口转换为TTL(Transistor-TransistorLogic)电平的串行通信接口。TTL电平通常用于嵌入式系统、单片机、开发板等硬件设备之间的通信。具体来说,它是一种USB转串行通信接口的桥接器。什么是USBtoTTL?USB(UniversalSerial......
  • SpringBoot在线投票数据分析平台研究与设计8kxf0(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着互联网技术的普及,在线投票活动逐渐成为各类组织、企业和个人进行决策和意见收集的重要手段。然而,如何高效地收集、整理和分......
  • SpringBoot在线教育系统a1q7y(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着互联网技术的快速发展,教育领域正经历着前所未有的变革。在线教育系统作为数字化教育的重要载体,以其跨越时空限制、灵活便捷......
  • WPF ItemsControl.AlternationIndex AlternationCount
    <StyleTargetType="{x:TypeControl}"x:Key="lbxStyle"><Style.Triggers><TriggerProperty="ItemsControl.AlternationIndex"Value="0"><SetterProperty="Background&quo......
  • WPF Static ToolBar.ButtonStyleKey
    <Windowx:Class="WpfApp33.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.......
  • WPF style BasedOn base style
    <Windowx:Class="WpfApp32.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.......
  • WPF如何全局应用黑白主题效果
    灰白色很多时候用于纪念,哀悼等。那么使用WPF如何来做到这种效果呢?要实现的这种效果,我们会发现,它其实不仅仅是要针对图片,而是要针对整个窗口来实现灰白色。如果只是针对图片的话,我可以可以对图片进行灰阶转换,即可达到灰色效果。以下是图片转灰阶的代码,当然方法不仅仅是这一种......