Binding 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
바인딩 대상 및 데이터 원본의 속성을 연결하는 바인딩을 정의합니다.
/// [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}" />
- 상속
- 특성
예제
다음 코드 예제에서는 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 앱에서 |
DispatcherQueue |
이 개체가 연결된 |
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) |
적용 대상
추가 정보
- <xref:Microsoft.UI.Xaml.Data.BindingOperations.SetBinding(Microsoft.UI.Xaml.DependencyObject%2cMicrosoft.UI.Xaml.DependencyProperty%2cMicrosoft.UI.Xaml.Data.BindingBase)%0a(bindingoperations_setbinding_746099660.md)>
- XAML 데이터 바인딩 샘플
- 데이터 바인딩 심층
- 종속성 속성 개요
- 속성 경로 구문