現在、私はモデルの最初のDevForceエンティティのWPFクライアントサイドパーシャルを作成しようとしています。問題は、WPFクライアントの部分が、クライアントプロジェクトが参照しているモデルプロジェクト内の部分的な兄弟のプロパティにアクセスできないように見えることです。クライアントサイドパーシャルDevForceエンティティでモデルに公開されているプロパティが表示されない部分
私はクライアントとモデルの両方で同じ名前空間を使用しましたが、クライアント側は1つのファイルのみで部分的に戻ってきます。
私の主な理由は、クライアント側のエンティティPartialに追加するプロパティ内のクライアントプロジェクトにある静的なクラスのプロパティにアクセスする必要があることです。次のうちサンプル:
モデルバディクラス:一部
using System;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Security.Principal;
using IbEm = IdeaBlade.EntityModel;
using IdeaBlade.EntityModel.Security;
using IdeaBlade.Validation;
// ReSharper disable CheckNamespace
namespace BearPaw.Models.Main
{
[MetadataType(typeof(NavigationButtonGroupMetadata))]
public partial class NavigationButtonGroup
{
[IbEm.AllowRpc]
public static object NameAlreadyInUse(IPrincipal principal,
IbEm.EntityManager entityManager, params Object[] args)
{
string buttonGroupNameToCheck = (string)args[0];
var serverButtonGroup = entityManager.GetQuery<NavigationButtonGroup>().FirstOrDefault((u) => u.Name == buttonGroupNameToCheck);
return serverButtonGroup != null;
}
}
public class NavigationButtonGroupMetadata
{
[RegexVerifier("Name", @"^[A-Za-z_]*$")]
[StringLengthVerifier(MaxValue = 100, IsRequired = true, ErrorMessage = "Button Group Name must be unique")]
public static string Name;
}
}
クライアント側:
using System;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Security.Principal;
using IbEm = IdeaBlade.EntityModel;
using IdeaBlade.EntityModel.Security;
using IdeaBlade.Validation;
// ReSharper disable CheckNamespace
namespace BearPaw.Models.Main
{
[MetadataType(typeof(NavigationButtonGroupMetadata))]
public partial class NavigationButtonGroup
{
public bool IsEnabled
{
get
{
{
if (NavigationButtonGroupType.AlwaysVisible || (DynamicMenuItemsHelper.MenuDetails != null && DynamicMenuItemsHelper.MenuDetails.Count() > 0)) return true;
var currentUser = Authenticator.Instance?.DefaultAuthenticationContext?.Principal?.Identity;
return currentUser != null && NavigationButtons.
Any(b => b.IsEnabled);
}
}
}
}
}
Visual Studioは、オブジェクト参照が要求される旨NavigationButtonGroupType.AlwaysVisibleにコンパイルエラーを示していますNavigationButtonGroupTypeはモデル内のエンティティのnav propであるにもかかわらず、非静的フィールドである必要があります。同様の問題はNavigationButtonsもnavプロパティですが、Visual Studioでは現在のコンテキストに存在しないことを示しています。
これがうまくいかない理由についての助けや助言をいただければ幸いです。
感謝
リー
こんにちはKimさん、ありがとうございます。私はIdeaBlade DRCの次のテキストのおかげで私が誤解していたと思います。「.NETプロジェクトまたはクライアントプロジェクトに追加の部分クラスファイルを作成し、故意にリンクしないことがよりクリーンで簡単な方法です。 これは、これを可能にするいくつかの「秘密のソース」があると私に思い出させました。 このコードは、構造とエンティティを保持するためだけにVM全体を記述する必要がない、いくつかのナビゲーション構造用です。私が推測するように再考する必要があるかもしれません。早速のお返事ありがとうございます。 –