私のアプリケーションでFluidKitを使用しています。以下のコードは.Net 3.5では正常に動作していますが、.Net 4.5では例外がスローされます。システム無効なキャストNameScopeの例外
private Viewport3D _viewport;
protected override void OnVisualChildrenChanged(DependencyObject visualAdded, DependencyObject visualRemoved)
{
base.OnVisualChildrenChanged(visualAdded, visualRemoved);
if (visualAdded != null)
{
UIElement elt = visualAdded as UIElement;
GeometryModel3D model = CreateMeshModel(elt);
_modelGroup.Children.Add(model);
UpdateElementIndexes(elt, true);
if (IsLoaded)
{
ReflowItems();
}
}
if (visualRemoved != null)
{
UIElement elt = visualRemoved as UIElement;
int index = (int) elt.GetValue(ItemIndexProperty);
GeometryModel3D model = _modelGroup.Children[index] as GeometryModel3D;
UpdateElementIndexes(elt, false);
_modelGroup.Children.Remove(model);
// Update SelectedIndex if needed
if (SelectedIndex >= 0 && SelectedIndex < VisibleChildrenCount)
{
ReflowItems();
}
else
{
SelectedIndex = Math.Max(0, VisibleChildrenCount - 1);
}
}
}
private void UpdateElementIndexes(UIElement affectedElement, bool attach)
{
try
{
// Below line is giving exception :(
NameScope scope = (NameScope)NameScope.GetNameScope(_viewport);
...
....
}
例外
を入力するとSystem.InvalidCastExcpetionせる
NameScope scope = (NameScope)NameScope.GetNameScope(_viewport);
ライン:型のオブジェクトをキャストすることができません 'System.XAML.NameScope 'System.Windows.NameScope'
助けてください
てきました完全な型名をキャストしようとしましたか?例:System.XAML.NameScope scope =(System.XAML.NameScope)NameScope.GetNameScope(_viewport); ' –
@ManfredRadlwimmerは良い提案をしました。同様に、あなたの 'を使用して'を確認してください – Nino
親切にこのイメージを参照してくださいhttp://i.imgur.com/5JtPOr3.png –