在我的 WPF 应用程序中,我有一个样式,当绑定对象不为空时,该样式用图像画笔填充矩形。该样式按照我预期的方式工作,但是当 Binding 为 null 时,我会收到有关 ImageBrush setter 值的警告。我希望我可以使用转换器或空触发器来避免这种情况,但是我仍然收到警告。有没有一种方法可以绑定到一个对象并检查它在 xaml 中是否为 null,而不会在输出窗口中收到警告?
\n\n <Style TargetType="Rectangle" x:Key="LightHeadRectangle">\n <Setter Property="Fill" Value="Red" />\n <Style.Triggers>\n <DataTrigger Binding="{Binding BarLight, Converter={StaticResource isNullConverter}}" Value="false">\n <Setter Property="Fill">\n <Setter.Value>\n <ImageBrush Stretch="Fill" ImageSource="{Binding BarLight.OpenMount.ImagePath}" />\n </Setter.Value>\n </Setter>\n </DataTrigger>\n </Style.Triggers>\n </Style>\xe2\x80\x8b\nRun Code Online (Sandbox Code Playgroud)\n\n更新:希望阻止通用空警告的发生,但在这种情况下我收到的具体警告是。
\n\nSystem.Windows.Data 错误:2:找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement。BindingExpression:Path=BarLight.OpenMount.ImagePath; 数据项=空;目标元素是“ImageBrush”(HashCode=47952502);目标属性是“ImageSource”(类型“ImageSource”)
\n\n更新:
\n\n请注意,我正在使用此样式来定位多个列表框项数据模板,这可能会有所帮助。BarLight 最初也是空的。
\nAFAIK 您无法在代码中关闭它们,但如果您使用的是 Visual Studio,则可以在其中关闭它们。
话虽如此,绑定在 XAML 中默默失败是完全可以接受的。失败的绑定不会引发异常,因此不会对最终用户产生影响(只要您(开发人员)希望在不影响用户体验的某些情况下绑定失败)。
该警告只是作为开发人员的一种调试机制,以防他们预计绑定会失败。我不建议关闭此功能。
| 归档时间: |
|
| 查看次数: |
4741 次 |
| 最近记录: |