Как обнаружить поврежденную Привязку данных WPF?

70
задан Community 23 May 2017 в 11:46
поделиться

3 ответа

Лучше всего я мог найти...

, Как я могу отладить Привязку WPF? Beatriz Stollnitz

, Так как все не могут всегда бдительно следить за Окном вывода, ища Ошибки привязки, я любил Option#2. Который является, добавляет это к Вашему Приложению. Конфигурация

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.diagnostics>
    <sources>
      <source name="System.Windows.Data" switchName="SourceSwitch" >
        <listeners>
          <add name="textListener" />
        </listeners>
      </source>

    </sources>
      <switches>
        <add name="SourceSwitch" value="All" />
      </switches>

      <sharedListeners>
        <add name="textListener"
        type="System.Diagnostics.TextWriterTraceListener"
        initializeData="GraveOfBindErrors.txt" />
      </sharedListeners>

      <trace autoflush="true" indentsize="4"></trace>

  </system.diagnostics>
</configuration>

Разделяет на пары это с хорошим сценарием сканирования regex для извлечения соответствующей информации, которую можно иногда выполнять на GraveOfBindErrors.txt в выходной папке

System.Windows.Data Error: 35 : BindingExpression path error: 'MyProperty' property not found on 'object' ''MyWindow' (Name='')'. BindingExpression:Path=MyProperty; DataItem='MyWindow' (Name=''); target element is 'TextBox' (Name='txtValue2'); target property is 'Text' (type 'String')
39
ответ дан Palec 24 November 2019 в 13:27
поделиться

В.NET 3.5 это было представлено новый способ конкретно произвести информацию о трассировке об определенной привязке данных.

Это сделано через новое Система. Диагностика. PresentationTraceSources. TraceLevel присоединил свойство, что можно обратиться к любой привязке или поставщику данных. Вот пример:

<Window x:Class="WpfApplication1.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"
    Title="Debug Binding Sample"
    Height="300"
    Width="300">
    <StackPanel>
        <TextBox Name="txtInput" />
        <Label>
            <Label.Content>
                <Binding ElementName="txtInput"
                         Path="Text"
                         diag:PresentationTraceSources.TraceLevel="High" />
            </Label.Content>
        </Label>
    </StackPanel>
</Window>

Это поместит трассировочную информацию для просто что конкретная привязка в Окне вывода Visual Studio без любой требуемой конфигурации трассировки.

68
ответ дан Enrico Campidoglio 24 November 2019 в 13:27
поделиться

Вот полезная техника для отладки/трассировки триггеров эффективно. Это позволяет Вам регистрировать все триггерные действия наряду с реагировавшим элементом:

http://www.wpfmentor.com/2009/01/how-to-debug-triggers-using-trigger.html

2
ответ дан 24 November 2019 в 13:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: