- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的WPF MVVM项目中,出现此错误:
InvalidCastException: Unable to cast object of type 'Mocks.DDD_AutoRadio_General_Audio_AudioFile_130_13063066' to type 'DDD.AutoRadio.General.Audio.AudioFile'.
UserControl
。
AudioFile
:
namespace DDD.AutoRadio.General.Audio
{
[DataContract]
public class AudioFile : INotifyPropertyChanged
{
private string name;
/// <summary>
/// Name of the Mp3
/// </summary>
[DataMember]
public string FilePath
{
get { return name; }
set
{
var oldvalue = name;
if (oldvalue != value)
{
name = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("FilePath"));
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
}
UserControl
中:
public partial class EditField : UserControl
{
public static DependencyProperty selectedList =
DependencyProperty.Register("DataGridSelectedItems", typeof(OC<AudioFile>), typeof(EditField));
public OC<AudioFile> DataGridSelectedItems
{
get { return (OC<AudioFile>)GetValue(selectedList); }
set { SetValue(selectedList, value); }
}
public EditField()
{
InitializeComponent();
}
private void Collection_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
OC<AudioFile> l = new OC<AudioFile>();
foreach (AudioFile i in Collection.SelectedItems) //'Collection' is a DataGrid
l.Add(i);
DataGridSelectedItems = l;
}
}
ObservableColletion<>
类的类
public class OC<T> : ObservableCollection<T> where T: INotifyPropertyChanged
at DDD.AutoRadio.Database.Editor.View.EditField.Collection_SelectionChanged(Object sender, SelectionChangedEventArgs e)
at System.Windows.Controls.SelectionChangedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.Controls.DataGrid.OnSelectionChanged(SelectionChangedEventArgs e)
at System.Windows.Controls.Primitives.Selector.InvokeSelectionChanged(List`1 unselectedInfos, List`1 selectedInfos)
at System.Windows.Controls.Primitives.Selector.SelectionChanger.End()
at System.Windows.Controls.Primitives.Selector.SelectionChanger.SelectJustThisItem(ItemInfo info, Boolean assumeInItemsCollection)
at System.Windows.Controls.Primitives.Selector.SetSelectedToCurrent()
at System.Windows.Controls.Primitives.Selector.SetSynchronizationWithCurrentItem()
at System.Windows.Controls.DataGrid.OnItemsSourceChanged(IEnumerable oldValue, IEnumerable newValue)
at System.Windows.Controls.ItemsControl.OnItemsSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue)
at System.Windows.Data.BindingExpressionBase.Invalidate(Boolean isASubPropertyChange)
at System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
at System.Windows.Data.BindingExpression.Activate(Object item)
at System.Windows.Data.BindingExpression.AttachToContext(AttachAttempt attempt)
at System.Windows.Data.BindingExpression.MS.Internal.Data.IDataBindEngineClient.AttachToContext(Boolean lastChance)
at MS.Internal.Data.DataBindEngine.Task.Run(Boolean lastChance)
at MS.Internal.Data.DataBindEngine.Run(Object arg)
at MS.Internal.Data.DataBindEngine.OnLayoutUpdated(Object sender, EventArgs e)
at System.Windows.ContextLayoutManager.fireLayoutUpdateEvent()
at System.Windows.ContextLayoutManager.UpdateLayout()
at System.Windows.UIElement.UpdateLayout()
最佳答案
我找到了解决方案:
在自定义UserControl
EditField
中,存在DependentieProperty
的SelectedItems
'DataGridItemsSource'。
我需要做的就是从源中选择对象,而不是从SelectedItems中选择对象。
(在Class
AudioFile中,我还有一个属性“Songcode”)
public partial class EditField : UserControl
{
#region DataGridSelectedItems
public static DependencyProperty selectedList =
DependencyProperty.Register("DataGridSelectedItems", typeof(OC<AudioFile>), typeof(EditField));
public OC<AudioFile> DataGridSelectedItems
{
get { return (OC<AudioFile>)GetValue(selectedList); }
set { SetValue(selectedList, value); }
}
#endregion
#region DataGridItemsSource
public static DependencyProperty datagriditemsource =
DependencyProperty.Register("DataGridItemsSource", typeof(OC<AudioFile>), typeof(EditField));
public OC<AudioFile> DataGridItemsSource
{
get { return (OC<AudioFile>)GetValue(datagriditemsource); }
set { SetValue(datagriditemsource, value); }
}
#endregion
public EditField()
{
InitializeComponent();
}
private void Collection_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
OC<AudioFile> l = new OC<AudioFile>();
DataGridSelectedItems.Clear();
foreach (AudioFile i in Collection.SelectedItems) //'Collection' is a DataGrid
l.Add(DataGridItemsSource.Where(x => x.Songcode == i.Songcode || x.FilePath == i.FilePath).First());
If (l.Count > 0)
DataGridSelectedItems = l;
}
}
关于c# - InvalidCastException : Unable to cast object of type 'Mocks.Class_…' to 'Class' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38747961/
我有一段代码是这样的: while(count = inputStream.readLine()) != null) { //do something } 在单元测试用例中,我正在模拟 inp
我有一段代码是这样的: while(count = inputStream.readLine()) != null) { //do something } 在单元测试用例中,我正在模拟 inp
假设我在文件中具有以下命名导出 customer.ts export const saveDetails = ()=>{} export const loadDetails = ()=>{} 假设我在
我一直试图绕过dart的模拟库,但似乎我仍然不明白。 在我的库中,我有一个对外部资源的HTTP请求,我想以此模拟它不要一直依赖外部资源。 我的库中的主类如下所示: SampleClass(String
使用 postman 模拟服务器存在问题。它不响应具有路由参数的请求。例如,我的 uri 如下所示: PUT : {{server_url}}/order/{id} 但是当我以这种方式调用模拟服务器时
将任何转换器或空属性转换添加到 Jest 配置时,模拟无法正常工作。下面是简单的代码。 Jest 配置: "transform": { any regex: any transformer } 模块说
我最近一直在做一个项目,该项目已经开始变得相当依赖,并且一直在探索使用 AutoMocking 容器来清理我的测试并使其不那么脆弱的想法。 我听说过 TDD/BDD 纯粹主义者反对使用它们的论点,例如
有谁知道为什么 UsernameExists 不会返回 True。我的语法一定在某个地方搞砸了。 [TestMethod()] public void GenerateUsername
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 10年前关闭。 Improve this qu
我得到一个 Moq 对象以在连续调用方法时返回不同的值。这是通过此扩展方法完成的: public static void ReturnsInOrder(this ISetup setup, param
rhino-mocks stub 和这里的期望有什么区别:在我看来它们的行为完全相同? mockContext.Stub(x => x.Find()) .Return(new List()
我正在尝试模拟方法 extra_get() 的调用,该方法通常返回一个字典列表。据我从模拟docs了解,如果我想返回iterable,我应该设置side_effect参数。 client.extra_
在我的 CentOS 6.2 机器的/var/lib/mock 文件夹下,我可以看到目标构建操作系统中的所有初始应用程序。如果我想添加 JDK 作为额外的应用程序,我该怎么做?谢谢! 最佳答案 只需将
我正在寻找一种让 stub 的返回值取决于其输入的干净方法。 目前我正在使用以下方法,但效果不佳。 metadataLogic.Expect(x => x.GetMake(args.Vehicle1.
我正在设置调用构建和执行查询的方法的期望。我想询问所用参数的属性。这可能吗 using (mocks.Record()) { Expect.Call(connection.Retrieve(S
有没有人有一个使用 Rhino Mocks 和 NInject 的自动模拟容器的实现? 最佳答案 好的,我使用 Moq 集成作为起点自己构建了一个。这很简单。你需要这 3 个类: public cla
使用后@patch在我的装饰器上它不再起作用了。我想进行一个失败并引发异常的调用,以便我可以检查我的装饰器是否正在捕获此异常,并正在调用某个函数。 mock do_sth_in_db让它引发异常是很容
谁能告诉我为什么下面的测试没有失败? [Test] public void uhh_what() { var a = MockRepository.GenerateMock(); a.
我找不到 Moq 和 Rhino 的具体功能比较。所有的问题都是“你更喜欢哪个以及为什么”,或者“这是你如何在 rhino 中进行简单的模拟以及如何在最小起订量中完成的”。 我在任何地方都找不到深入的
我正在尝试模拟数据存储库对象,但在 MockRepository 上设置期望后,它每次都返回 null。我的代码如下: [测试] 公共(public)无效 GetById_NotNull() { 预
我是一名优秀的程序员,十分优秀!