Share via


Binding.ElementName 屬性

定義

取得或設定要當做 Binding之系結來源的專案名稱。

public:
 property Platform::String ^ ElementName { Platform::String ^ get(); void set(Platform::String ^ value); };
winrt::hstring ElementName();

void ElementName(winrt::hstring value);
public string ElementName { get; set; }
var string = binding.elementName;
binding.elementName = string;
Public Property ElementName As String
<Binding ElementName="nameString"/>

屬性值

String

Platform::String

winrt::hstring

您想要作為系結來源之元素的 Name 屬性或 x:Name 屬性 的值。 預設為空字串。

範例

下列程式碼範例示範如何在 TextBoxSlider 控制項之間建立雙向系結。 如需完整的程式代碼清單,請參閱 XAML 資料系結範例中的案例 1。

<Slider x:Name="slider1" Minimum="1" Maximum="100"/>
<TextBox Text="{Binding ElementName=slider1, Path=Value, Mode=TwoWay}"/>

備註

當您設定此屬性時,指定的值必須參考下列其中一個位置中的元素:

  • 目前的 XAML 命名範圍。
  • 如果系結目標位於資料範本或控制項範本中,則為樣板化父系的 XAML 名稱範圍。 由於這項限制,您無法使用 ElementName 屬性系結至不是使用 XAML 建立的專案。 若要系結至以程式設計方式建立的專案,請改用 Source 屬性。 SourceRelativeSource和 ElementName 在系結中互斥。 如果您已設定其中一個屬性,則透過 XAML 或透過程式碼) 設定系結 (系結中的其中一個其他兩個,都會導致例外狀況。

使用 ElementName 值的系結幾乎一律包含簡單的 Path ,其會命名所參考物件上的屬性。 通常,來自具名元素的來源屬性和目標上的目的地屬性具有相同的名稱,並使用相同的實數值型別,這是您在複合控制群組件但來自元件介面屬性的控制項範本定義中經常看到的案例。 如果來源和目的地屬性使用不同的類型,請指定可解析類型差異的 Converter 值,並傳回目的地的適當值。

如需 XAML 命名範圍的詳細資訊,以及它們如何影響從 XAML 建立之物件的系結和其他程式設計存取,請參閱 XAML 命名範圍

ElementName 的值在技術上可以是任何字串,但 Namex:Name 屬性 的值在 XamlName 文法中會強制執行為有效,因此您通常也會受到 ElementName 值的文法所系結。 For more info on what's valid for an element name, see the "XamlName grammar" section in the x:Name attribute reference.

系結附加至目標專案和目標屬性之後,就無法設定 Binding 物件的屬性值。 如果您嘗試這樣做,將會收到運行時例外狀況。

適用於

另請參閱