無法洗掉 XAML 代碼中的重復代碼。
例子:
<TabControl x:Name="TabControl">
<TabItem Header="1">
<TabItem.Content>
<GridView x:Name="GridView1">
...
</GridView>
</TabItem.Content>
</TabItem>
<TabItem Header="2">
<TabItem.Content>
<GridView x:Name="GridView2">
...
</GridView>
</TabItem.Content>
</TabItem>
</TabControl>
選項卡的內容是相同的,除了 GridView 控制元件的名稱。
我需要通過 XAML 靜態創建選項卡,以便在代碼隱藏中訪問 GridView。
有沒有辦法將 TabItems 的內容保存在一個地方,因此它可以用于兩個 TabItems,但保留在代碼隱藏中分別訪問兩個 GridView 的可能性?
uj5u.com熱心網友回復:
如果您指的是整個 GridView 內容,您可以像創建表單一樣創建自己的控制元件。但不是
<Window x:Class...
other xmlns stuff of window >
[actual content within]
</Window>
只需使用您的 gridview 的內容創建一個檔案,例如
<GridView x:Class="classNameOfThisControl"
other xmlsns stuff like that of Window >
[content within the gridview]
</GridView>
然后,在重復的選項卡控制元件中,您可以添加此自定義 xaml 內容
<TabControl x:Name="TabControl">
<TabItem Header="1">
<TabItem.Content>
<local:classNameOfThisControl x:Name="GridView1"/>
</TabItem.Content>
</TabItem>
<TabItem Header="2">
<TabItem.Content>
<local:classNameOfThisControl x:Name="GridView2"/>
</TabItem.Content>
</TabItem>
</TabControl>
您在現有專案中看到的“本地”背景關系基本上是您自己的專案和上一步中創建的類名的背景關系。對于許多可以在多個地方重復使用的東西,我已經這樣做了。想象一個需要名稱和地址的應用程式。為什么要重新創建 20 次。宣告網格、列對齊、文本輸入等的相同背景關系,并且只需在該級別和內部部分分配任何系結背景關系(提供相同的系結屬性名稱背景關系),它就可以順利運行。高溫高壓
反饋
如果您更完整的 [GridView] 并且每個實體都有多個控制元件,并且您想明確知道其中的控制元件,您仍然可以使用部件的 x:Name 背景關系,但您首先需要獲取第一個實體 gridview 名稱,然后在其中找到其他控制元件的部分。因為 GridView1.SomeTextbox 在 IT 演示中與 GridView1.SomeTextbox 是一個明顯不同的物件。說得通?如果您可以編輯您現有的帖子,并可能提供更多關于您正在嘗試做的事情的背景資訊,可能有助于增加說明。
另一種方法可能是使用某些屬性創建您自己的自定義類,并將這些屬性的背景關系系結到預定義的模板/樣式,該模板/樣式知道您的自定義類及其相關的可系結屬性,但這比您在哪里更深入此刻。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/481272.html
