Binding 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
바인딩 대상 및 데이터 원본의 속성을 연결하는 바인딩을 정의합니다.
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 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(Windows.Foundation.UniversalApiContract), 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}" />
- 상속
- 특성
Windows 요구 사항
디바이스 패밀리 |
Windows 10 (10.0.10240.0에서 도입되었습니다.)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)
|
예제
다음 코드 예제에서는 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);
'Create the source string
Dim s As String = "Hello"
'Create the binding description
Dim b As New Binding()
b.Mode = BindingMode.OneTime
b.Source = s
'Attach the binding to the target
Dim MyText As New TextBlock()
MyText.SetBinding(TextBlock.TextProperty, b)
설명
{Binding} 태그 확장을 사용하면 경로 및 원본과 같은 바인딩 속성을 설정하는 것을 포함하여 바인딩 값을 XAML에서 단일 특성 문자열로 지정할 수 있습니다. 데이터 바인딩 개념에 대한 자세한 내용은 데이터 바인딩 심층 분석을 참조하세요.
Binding 클래스는 {Binding} 태그 확장의 코드 숨김 노출로 간주될 수 있습니다. 바인딩이 대상에 이미 적용된 경우(XAML이 로드될 때 발생함) Binding 개체의 읽기-쓰기 속성을 설정하여 런타임에 바인딩이 동작하는 방식을 변경할 수 없습니다. 모든 XAML 정의 바인딩은 변경할 수 없는 것으로 간주되어야 합니다. 그러나 FrameworkElement.SetBinding을 사용하여 새 Binding 개체를 만들고, 해당 속성을 설정하고, 특정 UI 요소 대상에 새 바인딩을 설정할 수 있습니다. 자세한 내용은 코드에서 바인딩 만들기를 참조하세요.
Binding 개체는 데이터 개체에 대한 업데이트가 데이터 바인딩을 사용하는 속성에 자동으로 전파되도록 FrameworkElement 의 종속성 속성을 데이터 개체에 직접 연결합니다. Binding 클래스는 바인딩의 속성을 정의합니다. 각 바인딩에는 대상 요소, 대상 속성 및 데이터 원본이 있어야 하지만 일부 값은 기본적으로 지정하지 않으면 제공됩니다.
데이터 개체의 속성 또는 하위 속성에 바인딩하려면 Binding 개체의 Path 속성을 설정합니다. 코드 또는 XAML에서 경로를 설정하는 방법에 대한 자세한 내용은 속성 경로 구문 또는 {Binding} 태그 확장을 참조하세요.
Binding 클래스의 instance 여러 대상에 적용할 수 있습니다. 그러나 대상 요소에 연결한 후에는 Binding 개체의 속성 값을 수정할 수 없습니다.
참고
FrameworkElement.SetBinding 메서드를 호출하고 새 Binding 개체를 전달해도 기존 바인딩이 반드시 제거되는 것은 아닙니다. 대신 DependencyObject.ClearValue 메서드를 사용해야 합니다.
바인딩을 사용할 수 있거나 데이터 바인딩된 값으로 설정할 수 있는 속성의 XAML 특성 사용에 대한 자세한 내용은 {Binding} 태그 확장을 참조하세요.
데이터 바인딩의 대상인 속성은 종속성 속성이어야 합니다. 자세한 내용은 종속성 속성 개요를 참조하세요.
생성자
Binding() |
Binding 클래스의 새 instance 초기화합니다. |
속성
Converter |
원본과 대상 간에 전달될 때 또는 그 반대로 데이터를 수정하기 위해 바인딩 엔진에서 호출하는 변환기 개체를 가져오거나 설정합니다. |
ConverterLanguage |
Converter 속성에 지정된 변환기로 전달할 언어의 이름을 지정하는 값을 가져오거나 설정합니다. |
ConverterParameter |
변환기 논리에서 사용할 수 있는 매개 변수를 가져오거나 설정합니다. |
Dispatcher |
이 개체가 연결된 CoreDispatcher 를 가져옵니다. CoreDispatcher는 코드가 비 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 instance 특정 DependencyProperty의 변경 내용을 수신 대기하기 위한 알림 함수를 등록합니다. (다음에서 상속됨 DependencyObject) |
SetValue(DependencyProperty, Object) |
DependencyObject에서 종속성 속성의 로컬 값을 설정합니다. (다음에서 상속됨 DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
RegisterPropertyChangedCallback을 호출하여 이전에 등록된 변경 알림을 취소합니다. (다음에서 상속됨 DependencyObject) |