Bu öğeyi doğrudan şablona yerleştirmekten ziyade, AnalogTvGraphFileElement
öğenizi içeren bir kullanıcı denetimi oluşturmayı ve ardından bu kullanıcı denetimini şablonunuzda kullanmayı denediniz mi?
Burada sorun, şablon sistemlerin neden olduğu özellikleri belirleyip iptal etmesinden kaynaklanıyorsa, öğelerinizin bir kullanıcı denetimine taşınması, özelliklerin artık şablondan ayarlanmayacağı için yardımcı olmalıdır.
İlk olarak neden bu durumu görüyorsanız, Boşaltılan olayın göreceli sıralamasını ve şablon aracılığıyla ayarlanan özelliklerin kaybolduğunu söyleyebildiğim kadarıyla, belgelenmemelisiniz. herhangi bir özel sipariş üzerine. özellik değerlerini kaybederseniz, belgelenmiştir. (Ya da en azından, bu belgelerden gizlidir.) WPF özellik sistemi, bir şablondaki yerel değerleri, şablonun dışındaki normal yerel değerlerden farklı bir şey olarak değerlendirir. Bu MSDN sayfasını dependency property precedence numaralı telefona bakın - 4b, şablondaki yerel özellik kümelerinin yerel özellikler ile aynı şey olmadığını gösterir. (Bir ayrım yapmak garip görünüyor, ancak her iki kaynaktan da özellik değerlerini şablon 4b'ye - ve daha sonra çalışma zamanında ayarlayarak, öğenin belirli bir örneğinde ve ayarında bulunması ve ayarlanması mümkün olmalıdır. Bu kod için yerel tip 3 - tip 3 yerel değerlerden daha yüksek önceliğe sahip olmak istersiniz.)
Bu şekilde göründüğünde gariptir. Tek bir şablon, birden çok örnek için değerler sağlayabilir. Herhangi bir sayıda unsuru etkileyebilecek sadece bir yerel özellik belirleyiciniz var. (Bu, bir şablonun basit bir zihinsel modelinin, görsel bir ağaç oluşturan ve o ağacın üzerindeki özellikleri ayarlayan bir fabrika olduğu anlamına gelir.Görsel bir ağaç oluşturan bir fabrikadır, ancak özellikleri ayarlamaz. Özellik sistemi, daha yüksek öncelikli özellik değeri kaynaklarının yokluğunda, bir öğenin şablonu olan görsel bir ağaçtaki öğelerin şablondaki ayarlayıcılardan değer alacağını basitçe garanti eder.)
Bu sayfa hemen anlatıyor Şablon 4b özellikleri, şablon etkinleşmeyi bıraktıktan sonra ortadan kalkar - şablon artık şablona sahip şablon için artık şablon değildir ve bu şablon tarafından sağlanan herhangi bir yerel değer, artık 4b türünde (veya başka türde) aday değerler olmayacaktır. mülkiyet için). Kısacası, şablon bir şey için şablon olmayı bıraktıktan sonra, o şey ya da içindeki herhangi bir şey için değer sağlayan herhangi bir işe sahip olmayı keser. Bu, bir şablon örneğinin görsel ağacının, artık hiçbir şey için değil, ancak henüz boşaltılamadığı bir tuhaf ortam haline girdiği anlamına gelir. Tabii
, boşaltma bittikten ilgili görsel ağacı önce değerlerini sağlayarak durdurmak için şablon için yararlı görünebilir ama değil, değeri bir eleman kaldırılırken garip durum biraz zaman tek önemli olduğunu belki özellikler ve özellikle için tasarlanmış bir değil. Bunu düşünmek, muhtemelen bağımlılık özellikleri olmamalıdır - DP'leri kullanışlı yapan hemen hemen tüm özellikler görsel ağaçtan kaldırıldıktan sonra gerçekten çok fazla anlam ifade etmemektedir. Öyle ki, Media Kit'deki UnloadedBehaviour'un bir DP olduğu ilk hatadır.
Devralınan özelliklerin (tip 10), yerel şablon özellik kümelerinden (tip 4b) daha sonra kapatılmasının tutarsızlığı var, ancak burada herhangi bir özel sipariş beklemenin makul olduğundan emin değilim. Belgelerin bir sıraya veya diğerine işaret ettiği aşikar değildir, bu nedenle ya sipariş doğrudur ... ve WPF bir senaryoda bir sıra seçerek ve diğeri de başka bir senaryoda bunu kullanarak görünür.
WPF Ortam Takımı'nın hangi sürümünü kullanıyorsunuz? Mevcut ikili sürüm mü yoksa kaynağından mı derliyorsunuz? Bu yorum yazılırken, mevcut ikili (v1.5) kaynak ağacın arkasında yaklaşık bir yıldır. Jez, aniden değişen özellik değerleriyle ilgili bazı hataları düzeltdi. Düzeltmenin doğrudan kullandığınız mülklerle ilgili olduğunu düşünmüyorum, ancak sorunu yeniden bulmak için hangi sürümü kullandığınızı bilmek faydalı olacaktır. –
Kaynaktan derliyorum. Sorun, WPF Media Kit'e özgü değil - basit bir bağımsız uygulamada yeniden üretebiliyorum. – jeffora
Açıklandığı gibi sorun, Boşaltılmamış Davranış ile ilgilidir. Kök nedeninin - mülklerin bir boşaltmada sıfırlanması gerçeği - evrensel olacağını, ancak genel olarak hangi sorunların ortaya çıktığını anlıyorum. WPF Medya Kitinde bu bir problemdir çünkü bu özelliği, sadece boşaltma işleminden sonra değerin ne olduğuyla ilgilendiğiniz bir özellik vardır. Bu ne sıklıkta oluyor? –