2009-05-06 12 views
5

Silverlight'ta "tıkla ve düzenle" denetimi yapmanın bir yolu var mı? Treeview denetiminde görüntülenen bazı öğeler var ve etiketlerin doğrudan ağaç görünümünde düzenlenebilir olmasını istiyorum.Silverlight'ta düzenlemek için tıkla

Bunu nasıl yapacağını bilen var mı?

+1

http://stackoverflow.com/questions/2088909/inline-editing-textblock-in-a-listbox-with-data-template-wpf/7687402#7687402 bağlantısı, tıklatılarak düzenlenmiş usercontrol verir. Bu yardımcı olur umarım. – Youngjae

cevap

9

Aslında çok kolay. Bu tür bir takas mekanizmasıyla birçok form geliştirdim.

Bunu bir Dönüştürücü kullanarak yapabilir ve TreeView'unuza bağladığınız varlıklarda bulunan bir IsEditable özelliğinde basit bir BooleanToVisibility dönüşümü yapabilirsiniz. TreeView öğenizin içinde TextTlock, IsEditable özelliği true olduğunda daraltılmış bir şekilde TextBlock'u bağlar ve TextBox, IsEditable özelliği false olduğunda (ve tersi) bu şekilde katıştırılacak şekilde bağlar.

sen aşağıdakileri yapmanız gerekir özel ClickToEdit denetimi oluşturmak isteseydik: EditableTemplate diye bir tane:

  1. tip DataTemplate yeni bir bağımlılık özelliklerini ortaya çıkarın ContentControl
  2. devralan bir sınıf oluşturun.
  3. Tıklamayı dinlemek için OnApplyTemplate'ınızın içinde bir MouseLeftButtonUp olay işleyicisi ekleyin.
  4. Etkin içerik şablonunu, click olayı için DüzenlenebilirTemplate olacak şekilde değiştirin.
  5. Denetim odağı kaybettiğinde şablonu tekrar değiştirin. İçerde orada

özel bir denetim uygulanması sağlayacak

  • özel ClickToEdit kontrolü koyun

      sizin TreeView için ItemTemplate geçersiz kılar
    1. :

    Şimdi TreeView içindeki özel denetimi kullanma (veya diğer geliştiriciler), içerik editörü olarak kullanmak istedikleri kontrolü kolayca belirtmek için. Örneğin, yalnızca bir TextBox kullanmak yerine bir NumericUpDown veya bir DateTimePicker belirtebilirler.

    Silverlight 3'teki DataForm'a bakın. Benzer işlevselliklere sahiptir, ancak düzenlenebilir ve salt okunur anahtarlama işlemi bir tıklama ile yapılmaz.

  • +0

    ContentTemplate'i düğme düğmesiyle değiştirdiğimde, odağı EditableTemplate denetiminde (TextBox) nasıl ayarlayacağınızı söyleyebilir misiniz? – Jehof

    +0

    N 5 numaralı adımla sıkıştım. İşte kodum http://stackoverflow.com/questions/28613473/click-to-edit-control-lostfocus-event-issue –

    İlgili konular