如果我启动一个新的WPF Windows应用程序,并添加 JUST Calendar控件:
<Window x:Class="MenuBindingTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Calendar/>
</Window>
运行这个,我得到以下绑定错误:
(x2) System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=DisplayMode; DataItem=null; target element is 'CalendarItem' (Name='PART_CalendarItem'); target property is 'NoTarget' (type 'Object')
(x7) System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:(no path); DataItem=null; target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
为什么会这样?
答案 0 :(得分:1)
您尚未关闭Calendar
对象。
你有:
<Calendar>
你需要:
<Calendar />
编译得很好。这表明系统中正在发生其他事情。您100%认为此代码失败了吗?
答案 1 :(得分:0)
我使用Expression Blend提取模板。使用模板作为指导,我发现这是发生绑定错误的地方:
<ControlTemplate>
<ControlTemplate.Resources>
<DataTemplate x:Key="{x:Static CalendarItem.DayTitleTemplateResourceKey}">
<TextBlock ...
Text="{Binding}"
.../>
</DataTemplate>
</ControlTemplate.Resources>
</ControlTemplate>
将其更改为:
<TextBlock ...
Text="{Binding FallbackValue=''}"
.../>
绑定错误消失了。