gpt4 book ai didi

c# - 如何消除 WPF 输出窗口中的绑定(bind) “Information” - 无法使用绑定(bind)检索值

转载 作者:行者123 更新时间:2023-11-30 17:55:30 24 4
gpt4 key购买 nike

我正在编写一个 WPF 应用程序,性能有点慢,所以我正在尝试解决它。当我运行时,我会收到大约大量的此类消息:

System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=(0); DataItem=null; target element is 'Control' (Name=''); target property is 'Visibility' (type 'Visibility')
System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=AreRowDetailsFrozen; DataItem=null; target element is 'DataGridDetailsPresenter' (Name=''); target property is 'SelectiveScrollingOrientation' (type 'SelectiveScrollingOrientation')
System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=HeadersVisibility; DataItem=null; target element is 'DataGridRowHeader' (Name=''); target property is 'Visibility' (type 'Visibility')
System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=ValidationErrorTemplate; DataItem=null; target element is 'Control' (Name=''); target property is 'Template' (type 'ControlTemplate')

如果我做一个小示例应用程序:

<Window x:Class="bindingerrors.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:bindingerrors="clr-namespace:bindingerrors" Title="MainWindow">
<Window.Resources>
<bindingerrors:Thinger x:Key="Thing" />
</Window.Resources>
<StackPanel>
<DataGrid x:Name="TheGrid" ItemsSource="{Binding Stuff, Source={StaticResource Thing}}" AutoGenerateColumns="False" HeadersVisibility="Column">
<DataGrid.Columns>
<DataGridTextColumn Header="!" Binding="{Binding A, FallbackValue=''}" />
<DataGridTextColumn Header="#" Binding="{Binding I, FallbackValue=''}" />
</DataGrid.Columns>
</DataGrid>
</StackPanel>
</Window>

以及以下对象定义:

public class Thinger
{
public ObservableCollection<ARow> Stuff { get; private set; }

public Thinger()
{
//Fill up some bogus data
string letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int i = 0;
Stuff = new ObservableCollection<ARow>();
foreach (var letter in letters)
{
Stuff.Add(new ARow(letter.ToString(),i));
i++;
}
}
}

public class ARow
{
public string A { get; private set; }
public int I { get; set; }

public ARow(string a, int i)
{
A = a;
I = i;
}
}

执行后,我遇到了堆积如山的绑定(bind)问题。因为许多 WPF 性能文章声称失败的绑定(bind)会严重损害性能,所以我怀疑这可能是我的许多问题的根源。

这是怎么回事?我怎样才能消除这些失败的绑定(bind)?我提供的示例尽可能简单,同时仍然是问题的征兆,但它应该可以正常工作,不是吗?我正在为 .net 4.0 构建,如果这有什么不同的话。

编辑:如果您尝试构建示例代码,则可能会抑制错误。在 visual studio 选项 -> 调试 -> 输出窗口 -> 数据绑定(bind)中,看到它设置在“信息”上。

我看过Getting many Binding "Information" in WPF output window , 但那里没有关于如何处理的信息。

谢谢

最佳答案

好吧,您可以解决一些问题来消除其中的一些错误。

  1. Stuff 有一个私有(private) setter ,因此您必须设置BindingModeOneWay
  2. A 有一个私有(private) setter ,因此您必须设置 BindingModeOneWay
  3. I 有一个不是 int 值的回退值

但是这些都不符合您发布的错误,只是一些观察结果

关于c# - 如何消除 WPF 输出窗口中的绑定(bind) “Information” - 无法使用绑定(bind)检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15016542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com