다음을 통해 공유


Binding 클래스

정의

바인딩 대상 및 데이터 원본의 속성을 연결하는 바인딩을 정의합니다.

/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Binding : BindingBase
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class Binding : BindingBase
Public Class Binding
Inherits BindingBase
<Binding .../>
- or -
<dependencyobject dependencyproperty="{Binding bindingArgs}" />
상속
Object IInspectable DependencyObject BindingBase Binding
특성

예제

다음 코드 예제에서는 XAML에서 바인딩을 만드는 방법을 보여 줍니다. 전체 코드 목록은 XAML 데이터 바인딩 샘플참조하세요.

<StackPanel Margin="5">

  <TextBlock Text="Name:" Style="{StaticResource DescriptionTextStyle}" 
    Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

  <TextBox Text="{Binding Path=Name, Mode=TwoWay}" 
    Width="350" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

  <TextBlock Text="Organization:" Style="{StaticResource DescriptionTextStyle}" 
    Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

  <!-- You can omit the 'Path=' portion of the binding expression. --> 
  <TextBox Text="{Binding Organization, Mode=TwoWay}" Width="350" 
    Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

</StackPanel>

다음 예제 코드는 코드에서 바인딩을 만드는 방법을 보여 줍니다.

// Create the source string.
string s = "Hello";

// Create the binding description.
Binding b = new Binding();
b.Mode = BindingMode.OneTime;
b.Source = s;

// Attach the binding to the target.
TextBlock MyText = new TextBlock();
MyText.SetBinding(TextBlock.TextProperty, b);
// Create the source string.
String^ s = ref new String(L"Hello");

// Create the binding description.
Binding^ b = ref new Binding();
b->Mode = BindingMode::OneTime;
b->Source = s;

// Attach the binding to the target.
TextBlock^ MyText = ref new TextBlock();
MyText->SetBinding(MyText->TextProperty, b);

설명

{Binding} 태그 확장 사용하면 경로원본같은 바인딩 속성을 설정하는 것을 포함하여 바인딩 값을 XAML에서 단일 특성 문자열로 지정할 수 있습니다. 데이터 바인딩 개념에 대한 자세한 내용은 데이터 바인딩 심층참조하세요.

Binding 클래스는 {Binding} 태그 확장코드 숨김 노출로 간주될 수 있습니다. 바인딩이 대상에 이미 적용된 경우(XAML이 로드될 때 발생함) 바인딩 개체의 읽기-쓰기 속성을 설정하여 런타임에 바인딩이 동작하는 방식을 변경할 수 없습니다. 모든 XAML 정의 바인딩은 변경할 수 없는 것으로 간주되어야 합니다. 그러나 새 Binding 개체를 만들고, 해당 속성을 설정하고, FrameworkElement.SetBinding사용하여 특정 UI 요소 대상에 새 바인딩을 설정할 수 있습니다. 자세한 내용은 코드바인딩 만들기를 참조하세요.

Binding 개체는 데이터 개체에 대한 업데이트가 데이터 바인딩을 사용하는 속성으로 자동으로 전파되도록 FrameworkElement 종속성 속성을 데이터 개체에 직접 연결합니다. Binding 클래스는 바인딩의 속성을 정의합니다. 각 바인딩에는 대상 요소, 대상 속성 및 데이터 원본이 있어야 하지만 일부 값은 기본적으로 지정하지 않으면 제공됩니다.

데이터 개체의 속성 또는 하위 속성에 바인딩하려면 Binding 개체의 Path 속성을 설정합니다. 코드 또는 XAML에서 경로 설정하는 방법에 대한 자세한 내용은 속성 경로 구문 또는 {Binding} 태그 확장참조하세요.

Binding 클래스의 인스턴스를 여러 대상에 적용할 수 있습니다. 그러나 대상 요소에 연결한 후에는 Binding 개체의 속성 값을 수정할 수 없습니다.

메모

FrameworkElement.SetBinding 메서드를 호출하고 새 Binding 개체를 전달해도 기존 바인딩이 반드시 제거되는 것은 아닙니다. 대신 Microsoft.UI.Xaml.DependencyObject.ClearValue 메서드를 사용해야 합니다.

바인딩을 사용할 수 있거나 데이터 바인딩된 값으로 설정할 수 있는 속성에 대한 XAML 특성 사용에 대한 자세한 내용은 {Binding} 태그 확장참조하세요.

데이터 바인딩의 대상인 속성은 종속성 속성이어야 합니다. 자세한 내용은 종속성 속성 개요참조하세요.

생성자

Binding()

Binding 클래스의 새 인스턴스를 초기화합니다.

속성

Converter

원본과 대상 간에 전달될 때 데이터를 수정하기 위해 바인딩 엔진에서 호출하는 변환기 개체를 가져오거나 설정합니다.

ConverterLanguage

Converter 속성으로 지정된 변환기에서 전달할 언어의 이름을 지정하는 값을 가져오거나 설정합니다.

ConverterParameter

Converter 논리에서 사용할 수 있는 매개 변수를 가져오거나 설정합니다.

Dispatcher

항상 Windows 앱 SDK 앱에서 null 반환합니다. 대신 DispatcherQueue 사용합니다.

(다음에서 상속됨 DependencyObject)
DispatcherQueue

이 개체가 연결된 DispatcherQueue 가져옵니다. 이 DispatcherQueue 비 UI 스레드에서 코드를 시작한 경우에도 UI 스레드의 DependencyObject 액세스할 수 있는 기능을 나타냅니다.

(다음에서 상속됨 DependencyObject)
ElementName

Binding바인딩 소스로 사용할 요소의 이름을 가져오거나 설정합니다.

FallbackValue

바인딩에서 값을 반환할 수 없을 때 사용할 값을 가져오거나 설정합니다.

Mode

바인딩에서 데이터 흐름의 방향을 나타내는 값을 가져오거나 설정합니다.

Path

바인딩 소스 속성의 경로를 가져오거나 설정합니다.

RelativeSource

바인딩 대상의 위치를 기준으로 위치를 지정하여 바인딩 소스를 가져오거나 설정합니다. XAML 컨트롤 템플릿 내의 바인딩에서 가장 자주 사용됩니다.

Source

바인딩의 데이터 원본을 가져오거나 설정합니다.

TargetNullValue

원본 값이 null대상에 사용되는 값을 가져오거나 설정합니다.

UpdateSourceTrigger

양방향 바인딩에 대한 바인딩 소스 업데이트의 타이밍을 결정하는 값을 가져오거나 설정합니다.

메서드

ClearValue(DependencyProperty)

종속성 속성의 로컬 값을 지웁니다.

(다음에서 상속됨 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

애니메이션이 활성화되지 않은 경우 적용되는 종속성 속성에 대해 설정된 기본 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
GetValue(DependencyProperty)

DependencyObject종속성 속성의 현재 유효 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
ReadLocalValue(DependencyProperty)

로컬 값이 설정된 경우 종속성 속성의 로컬 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

DependencyObject 인스턴스에서 특정 DependencyProperty 변경 내용을 수신 대기하기 위한 알림 함수를 등록합니다.

(다음에서 상속됨 DependencyObject)
SetValue(DependencyProperty, Object)

DependencyObject종속성 속성의 로컬 값을 설정합니다.

(다음에서 상속됨 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback호출하여 이전에 등록된 변경 알림을 취소합니다.

(다음에서 상속됨 DependencyObject)

적용 대상

추가 정보