ArkaplanBildirilen XAML liste öğeleri, bağımlılık özelliklerinin ne zaman ayarlandığını gösterir?
Özel bir wpf paneli oluşturuyorum. Alt öğeleri düzenlemeye yardımcı olmak için "düzenler" dediğim ikincil bir liste kullanır (Grid.RowDefinitions veya Grid.ColumnDefinitions benzeri). Her bir düzende birkaç bağımlılık özelliği bulunur ve alt öğeler, aşağıda görüldüğü gibi yerleştirildiklerini belirlemek için ekli bir özellik kullanır.
<Panel>
<Panel.Layouts>
<Layout/>
<Layout Attachment="Right"/>
<Layout Attachment="Left" Target="0"/>
</Panel.Layouts>
<ChildItem Panel.Layout="0"/>
<ChildItem Panel.Layout="1"/>
<ChildItem Panel.Layout="2"/>
<Panel/>
Açıkçası, İşler biraz basitleştirilmiş, ancak uzun lafın kısası: Ben "Yerleştir" süreç oluşabilir önce onlar eklendikçe düzenleri işlemek gerekir. Özel bir koleksiyon oluşturdum ve öğeleri eklendikçe görebiliyorum (aşağıya bakınız), ancak öğeler varsayılan özelliklerine sahip. Panel başlatıldıktan sonra ben koleksiyonuna baktığımızda
LayoutCollection: IList
{
public int IList.Add(object value)
{
// When first starting, this line always returns the default value, not the one set in XAML
Attachment a = (value as Layout).Attachment;
// Other code happens below...
}
}
Ancak, özellikleri doğru ayarlanmış olmalıdır. Sorumun hangisi bana getiriyor: XAML ve panelin başlatma arasındaki sürecinde hangi noktada ürün özelliklerini atanır ve nasıl alırım At
Soru
atandıkları? Bir şekilde ona bağlanmam ve biraz kod çalıştırmam gerek.
BAĞLANTILI veya SONRAKİ Mülkiyete ait değerler, ayarlanmış/kullanılmış mı? Düzenlemeyi tamamen değiştirmekle ilgili bir durum varsa, https://msdn.microsoft.com/de-de/library/system.windows.frameworkelement.arrangeoverride(v=vs.110).aspx – MABVT
Eklenmiş özellikler ('Panel.Layout' özellik eklidir) değerin ayarlandığı/değiştirildiğini bilmek için kullanabileceğiniz geri arama vardır. Pencere sınıfınızda bu geri çağrıyı geçersiz kılabilirsiniz. Bu bağlı özellikleri yarattığınız kodu ve soruna neden olan belirli bir noktayı gösterirseniz iyi olur. O zaman onu düzeltmek kolay olmalı. Bkz. [This] (http://stackoverflow.com/a/31857866/1997232). – Sinatr
Ölçüleri gerçekten ölçmeden ve sonra da çocuk öğelerini düzenlemeden önce neden MeasureOverride'de işlemeyin? – Clemens