Mevcut WPF denetimlerine (Grup kutusu, metin kutusu, onay kutusu vb.) Yeni bir özellik oluşturmalıyım. Ekli Özellikler buldum. ... Ben örnek http://dotnetbyexample.blogspot.com.br/2010/05/attached-dependency-properties-for.htmlC# WPF Eklenen Özellikler - Hata: "Özellik XML ad alanında bulunmuyor"
her şey iyiydi bu site olarak kullanılan, ancak bazı kumanda üzerindeki kullanmaya çalışırken sonra aşağıdaki hata var
Error 1 The property 'DependencyPropertiesHoster.AcessLevel' does not exist in XML namespace 'clr-namespace:ImageGUI.App_Code;assembly=ImageGUI'. Line 131 Position 97. ImageGUI\MainWindow.xaml 131 97 ImageGUI
Bu benim C# kod parçacığı olduğunu ...
namespace ImageGUI.App_Code
{
public static class DependencyPropertiesHoster
{
//[AttachedPropertyBrowsableForChildren]
public static readonly DependencyProperty AcessLevelProperty =
DependencyProperty.RegisterAttached("AcessLevel",
typeof(EAcessLevel),
typeof(DependencyPropertiesHoster),
new PropertyMetadata(AcessLevelChanged));
// Called when Property is retrieved
public static EAcessLevel GetAcessLevel(DependencyObject obj)
{
if (obj != null)
return (EAcessLevel)obj.GetValue(AcessLevelProperty);
else
return EAcessLevel.Client;
//return obj.GetValue(AcessLevelProperty) as EAcessLevel;
}
// Called when Property is set
public static void SetAcessLevel(
DependencyObject obj,
EAcessLevel value)
{
obj.SetValue(AcessLevelProperty, value);
}
// Called when property is changed
private static void AcessLevelChanged(
object sender,
DependencyPropertyChangedEventArgs args)
{
var attachedObject = sender as UIElement;
if (attachedObject != null)
{
// do whatever is necessary, for example
// attachedObject.CallSomeMethod(
// args.NewValue as TargetPropertyType);
}
}
}
} Burada
Pencere 012 benim beyanıdır EAcessLevel sadece basit bir sayım memuru geçerli:xmlns:CustomDepen="clr-namespace:ImageGUI.App_Code;assembly=ImageGUI"
Ve burada mülkün benim kullanımı (hata yatıyor ...)
<GroupBox Name="gbApplications" Header="{DynamicResource applications}" CustomDepen:DependencyPropertiesHoster.AcessLevel="Client">
Gözlem olduğunu.
Şimdiden teşekkürler.
'AcessLevel',' ImageGUI' aksamında olduğundan emin misiniz? Bildirimi 'assembly = ImageGUI' bölümünü kaldırırsanız çalışır mı? Sonunda bir SO sorusunda yeterli bilgiyi içeren bir kişi için –
+1. @ Bob'un yorumuna eklemek için, eklediğiniz mülkünüz (veya her neyse) XAML'nizle aynı mecliste ise, XML -> CLR ad alanı eşlemenizin 'assembly =' kısmını eklememelisiniz. –
Teşekkürler! Bu kadar basit olduğuna inanamıyorum, ama olduğuna sevindim. Sadece sonlandırma parçasını çıkarmak onu sabitlemiştir (assembly = ...). Ama bu özelliği kodda nasıl geçebilirim acaba? Şimdi nasıl programlı olarak alabilirim? mükemmel senaryo örneği: EAcessLevel controlAcess = gbApplications.AcessLevel; – Luishg