首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当集合发生更改时,InvalidOperationException在数据库FluidKit ElementFlow中

当集合发生更改时,InvalidOperationException在数据库FluidKit ElementFlow中
EN

Stack Overflow用户
提问于 2012-09-19 13:32:44
回答 1查看 205关注 0票数 0

我有ElementFlowContainer用户控件,它包含来自FluidKit.Showcase项目的ElementFlow。

代码语言:javascript
复制
<UserControl x:Class="Controls.ElementFlowContainer">
<Grid>
<-- Other controls (cut) -->
<Controls:ElementFlow x:Name="_elementFlow" ItemsSource="{Binding}" ItemTemplate="{DynamicResource TestDataTemplate}" SelectedIndex="3">
<-- Layout, Background, Camera settings (cut) -->
</Controls:ElementFlow>
</Grid>
</UserControl>

我有一个ObservableCollection,它充当DataContext of ElementFlow:

代码语言:javascript
复制
<Controls:ElementFlowContainer DataContext="{Binding MediaRecords}"/>

MediaRecord具有我想要显示的图像属性(byte[]内容)。下面是模板:

代码语言:javascript
复制
<DataTemplate x:Key="TestDataTemplate" 
DataType="{x:Type DAL:MediaRecord}">
<Border x:Name="ElementVisual" Background="White" BorderThickness="2" BorderBrush="#ff9e8028">
<Image Source="{Binding Content}" Stretch="Fill" />
</Border>
</DataTemplate>

上面的所有内容都在ViewModel中,它是由IoC容器创建的(MediaRecords属性在初始化时为null )。当集合中充满了我得到的项目时

代码语言:javascript
复制
"InvalidOperationException '[Unknown]' property does not point to a DependencyObject in 
path "(0)[0].(1)[1].(2).(3)[0].(4)."

这个错误发生在属性设置器中的RaisePropertyChanged中:

代码语言:javascript
复制
public const string MediaRecordsPropertyName = "MediaRecords";
public ObservableCollection<MediaRecord> MediaRecords
{
 get { return _mediaRecords; }
 set 
 { if (_mediaRecords == value) { return; } _mediaRecords = value;
   RaisePropertyChanged(MediaRecordsPropertyName); // error here         
 }
}

知道怎么解决这个问题吗?

编辑

相同的集合绑定到另一个控件,因此我猜这个问题与并发性有关。修正了它的快速和肮脏,通过维护第二份收集和绑定到它,但也许有一个更好的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-16 07:30:46

解决方案与单独的集合工作,问题现在可能关闭。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12495837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档