AMcoder - javascript, python, java, html, php, sql

Հարց այս xaml նշագրման ընդլայնման վերաբերյալ

Ես փորձում եմ հասկանալ, թե ինչ է անում ստորև բերված x:Key հատկանիշի նշագրման ընդլայնումը և ինչ տեսակի նշագրման ընդլայնում է դա:

<Window x:Class="App1.Window1" xmlns:dxg="http://schemas.microsoft.com/winfx/2006/xaml/presentation">

<DataTemplate x:Key="{dxg:Example ResourceKey=Example}">
    <dxg:TextEdit Text="123/>
</DataTemplate>

</Window>

Շնորհակալություն։


Պատասխանները:


1

Դե, այդ օրինակը ոչինչ չի անի, ավելի շուտ, այն կձախողվի, քանի որ WPF անվանատարածքում Example անունով նշագրման ընդլայնում չէ:

Բայց եթե լինի նշագրման ընդլայնում, որը կոչվում է Example, ապա այն ինչ կաներ՝ օրինականացնել ExampleMarkupExtension օբյեկտը, սահմանել նրա ResourceKey հատկությունը և այնուհետև զանգահարել ProvideValue մեթոդը, որը կվերադարձնի օբյեկտ, որը կօգտագործվի որպես բանալին ռեսուրսների բառարանին ավելացվող նյութի համար:

Առանց ավելի շատ համատեքստի, դժվար է իմանալ, թե ձեր բերած օրինակն ինչ նպատակ ունի ցույց տալու: Կարծում եմ, որ ցուցադրվող հասկացություններն են՝ ա) որ ռեսուրսների բառարանի բանալին կարող է լինել ցանկացած առարկա, ոչ թե պարզապես տող, և բ) որ դուք կարող եք օգտագործել նշագծման ընդլայնում այդ բանալին ստեղծելու համար: Իրական օրինակ.

<DataTemplate x:Key="{x:Type TextBox}">

որը ռեսուրսների բառարանին ավելացնում է DataTemplate՝ typeof(TextBox) բանալիով:

01.07.2010

2

սովորաբար x:Key հատկանիշը թույլ է տալիս հղում կատարել ռեսուրսին ըստ բանալի, այս դեպքում, քանի որ ձևանմուշը ResourceDictionary-ում չէ, ես վստահ չեմ, որ այն որևէ նպատակ ունի:

Հուսով եմ, որ սա օգնում է:

01.07.2010
  • Ողջույն, ենթադրենք DataTemplate-ը հայտարարված է ‹Windows.Resources›-ում, բայց x:Key հատկանիշը թույլ է տալիս այլ տարրերին հղում կատարել այն տարրին, որի համար հայտարարված է այս հատկանիշը (այս դեպքում՝ DataTemplate), իմ հարցն այն է, թե ինչ: արդյո՞ք այս նշագրման ընդլայնումն անում է դրա հետ կապված: Շնորհակալություն։ 01.07.2010
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..