C# wpf图像源:“;格式";使用stringformat绑定(>;文件名)
我有一个INotifyPropertyChanged-Able类,并认为使用以下内容是一个好主意:C# wpf图像源:“;格式";使用stringformat绑定(>;文件名),c#,wpf,binding,string-formatting,C#,Wpf,Binding,String Formatting,我有一个INotifyPropertyChanged-Able类,并认为使用以下内容是一个好主意: <Image Source="{Binding myfilename, StringFormat='FixedPath/{0}.png'}" /> 因此,每当我在源代码中更改我的文件名时,我都会在wpf gui中获得相应的图像 它编译。但在控制台中,我得到一个错误,TargetDefaultValueConverter无法转换myfilename的值。装订工作正常。只有strin
<Image Source="{Binding myfilename, StringFormat='FixedPath/{0}.png'}" />
因此,每当我在源代码中更改我的文件名时,我都会在wpf gui中获得相应的图像
它编译。但在控制台中,我得到一个错误,TargetDefaultValueConverter无法转换myfilename的值。装订工作正常。只有stringformat似乎没有被应用
我在这里遗漏了什么?免责声明:这多少有些猜测 根据某些读数,当内置转换器无法提供正确的类型时,会发生该错误。因此,如果绑定到的对象需要一个
字符串
,那么您尝试执行的操作就可以了。但是,Source
属性实际上是类型BitmapSource
——出于某种原因,WPF可以将原始字符串
转换为BitmapSource
,但因为目标类型不是字符串
,所以运行内置字符串格式化程序是不正常的
您可以尝试制作自己的ValueConverter,该转换器完全可以执行此格式设置。关于导致错误消息的类型不匹配,您是正确的。此外,StringFormat参数仅应用于非字符串类型,因此即使将其指定给字符串属性,也不会添加格式。一个定制的转换器是一个不错的选择。谢谢你的澄清,这是一个相当奇怪的限制。