我有一个问题 - 我想将一个类属性绑定到GridView,这是一个ObservableCollection。
班级代码:
public class Moment
{
...
public ObservableCollection<Uri> PhotoFilePath { get; set; }
}
XAML
<GridView Grid.Row="0"
Name="PhotosGridView"
ItemsSource="{x:Bind moment}">
时刻是MainPage.xaml中的Moment实例
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:Moment">
<Image Width="75" Height="75">
<Image.Source>
<BitmapImage UriSource="{x:Bind PhotoFilePath}" />
我明白了 严重性代码描述项目文件行抑制状态 错误无效的绑定路径&#39; PhotoFilePath&#39; :无法绑定类型&#39; System.Collections.ObjectModel.ObservableCollection(System.Uri)&#39;到&#39; System.Uri&#39;没有转换器
</Image.Source>
</Image>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
提前致谢
答案 0 :(得分:2)
你现在拥有它的方式似乎没有意义。 moment
是Moment
的实例,而不是事物列表(ItemsSource
期望的内容)。事情列表是PhotoFilePath
上的Moment
属性(除此之外,由于它是一个集合而不是单一路径,因此名称很少。)
我假设你真正想做的是将ItemsSource
绑定到moment.PhotoFilePath
:
ItemsSource="{x:Bind moment.PhotoFilePath}">
您需要将DataTemplate更改为仅定位到Uri:
<DataTemplate x:DataType="Uri">
请注意,如果你能在那里说“Uri”,我并不积极。我面前没有UWP项目。
然后UriSource到该属性内的每个项目:
<BitmapImage UriSource="{x:Bind}" />
答案 1 :(得分:0)
BitmapImage的UriSource属性需要类型'System.Uri' 但是你试图将它绑定到'ObservableCollection of System.Uri'
(Moment类的PhotoFilePath属性是System.Uri的ObservableCollection)
答案在错误消息中 '无法将类型'System.Collections.ObjectModel.ObservableCollection(System.Uri)'绑定到'System.Uri'