【问题标题】:Any reason why PresentationTraceSources.TraceLevel=High would not print any info to the output window?PresentationTraceSources.TraceLevel=High 不会将任何信息打印到输出窗口的任何原因?
【发布时间】:2010-05-10 12:45:47
【问题描述】:

我一直在尝试解决绑定我的 ComboBox 的 SelectedItem 的问题,由于到目前为止我还没有成功,我开始寻找通过设置 PresentationTraceSources.TraceLevel=High 用于特定绑定。不幸的是,这样做之后,我在“输出”窗口中的“调试”类别下看不到任何相关项目。

我正在使用 Visual Studio 2010,我的项目是一个 WinForms 项目,大量使用互操作,使用 ElementHost 来托管 WPF 内容。目前正在为 .NET 3.5 构建所有相关项目。任何可能导致我在输出窗口中看到额外跟踪信息的解决方案的想法或建议将不胜感激。

下面是我正在使用的代码的 sn-p。

<ComboBox xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
            SelectedItem="{Binding Path=MyCollection.SelectedItem, Mode=TwoWay, diagnostics:PresentationTraceSources.TraceLevel=High}"
            ItemsSource="{Binding MyCollection, diagnostics:PresentationTraceSources.TraceLevel=High}"
            SelectedValuePath="Value"
            DisplayMemberPath="Value.DisplayName" />

【问题讨论】:

  • 我也有同样的问题。过去这对我有用。您找到解决方案了吗?
  • 试试 WaltiD 的建议。在我的情况下,它在我上次测试它时开始工作,但我怀疑这与我在解决 Visual Studio 中与智能感知有关的另一个问题时间接应用 WaltiD 的解决方案有关。
  • 太好了,刚刚回到这篇文章,解决方案效果很好。

标签: wpf data-binding debugging trace


【解决方案1】:

这是 Visual Studio 2010 中的设置:

工具 -> 选项 -> 调试 -> 输出窗口 -> WPF跟踪设置 -> 数据绑定 -> 设置为 Warning(或任何你喜欢的)。

标准已关闭。

这个解决方案对我有用。

【讨论】:

  • 奇怪的是,我回到了这个,它现在似乎正在工作。我相信由于我正在解决的另一个问题,我不得不在 Visual Studio 2010 中重置我的设置,现在确实出现了您指出的设置现在设置为警告,尽管我不确定之前设置为什么有问题。如果它看起来像共识解决方案,我会将它留给其他人的投票并接受您的回答。谢谢
  • 哦,天哪……我快疯了……曾经在 2008 年工作,但不知道为什么它停止工作。非常感谢。
【解决方案2】:

确保您的 DataContext 不为空。如果是,则不会在输出窗口中记录任何信息

【讨论】:

    【解决方案3】:

    也可以在这里看到这个答案 - https://stackoverflow.com/a/50282982/3984575

    总结:确保您没有在代码中使用这样的行覆盖设置 -

    System.Diagnostics.PresentationTraceSources.DataBindingSource.Switch.Level = System.Diagnostics.SourceLevels.Critical;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      相关资源
      最近更新 更多