เมื่อใช้ทรัพยากรเช่นแปรงแม่แบบและสไตล์ใน WPF สามารถระบุได้ว่าเป็น StaticResources
<Rectangle Fill="{StaticResource MyBrush}" />
หรือเป็น DynamicResource
<ItemsControl ItemTemplate="{DynamicResource MyItemTemplate}" />
เกือบทุกครั้ง (เสมอหรือไม่) มีเพียงงานเดียวเท่านั้นและอีกรายการหนึ่งจะมีข้อยกเว้นในระหว่างการใช้งานจริง แต่ฉันต้องการรู้ว่าทำไม:
- ความแตกต่างหลักคืออะไร เช่นเดียวกับหน่วยความจำหรือความหมายของประสิทธิภาพ
- มีกฎใน WPF เช่น "brushes มักจะคงที่" และ "template เสมอไดนามิก" ฯลฯ ?
ฉันถือว่าตัวเลือกระหว่าง Static vs Dynamic ไม่ได้เป็นตามอำเภอใจเหมือนที่ปรากฏ ... แต่ฉันไม่เห็นรูปแบบ