내보내기(0) 인쇄
모두 확장
이 문서는 수동으로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오.
번역
원본

BindingBase.FallbackValue 속성

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

네임스페이스:  System.Windows.Data
어셈블리:  PresentationFramework(PresentationFramework.dll)
XAML의 XMLNS: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public Object FallbackValue { get; set; }
<object FallbackValue="fallbackValue" />

XAML 값

fallbackValue

형식 속성으로서 동일한 형식을 가진 개체 요소 값 또는 특성 XAML 사용에 대한 자세한 내용은 해당 형식의 설명서를 참조하십시오. 이 형식에 따라 해당 값의 특성 구문이나 개체 요소 구문이 지원되거나 지원되지 않을 수 있으며, 개체 요소 구문에는 이 형식에 대한 기본 생성자가 필요합니다. 따라서 대상 속성 형식은 FallbackValue 속성 값에 사용할 구문에 영향을 미칩니다.

속성 값

형식: System.Object
기본값은 DependencyProperty.UnsetValue입니다.

다음과 같은 경우 바인딩이 성공적으로 값을 반환합니다.

  1. 바인딩 소스의 경로를 확인한 경우

  2. 값 변환기(있는 경우)가 결과 값을 변환할 수 있는 경우

  3. 결과 값이 바인딩 대상(대상) 속성에 대해 올바른 경우

1과 2에서 DependencyProperty.UnsetValue를 반환하면 대상 속성은 FallbackValue의 값으로 설정됩니다(값이 있는 경우). FallbackValue 가 없으면 대상 속성의 기본값이 사용됩니다.

DependencyProperty.UnsetValue 값은 성공적인 반환 값으로 간주되지 않습니다.

PriorityBinding in Windows Presentation Foundation (WPF) works by specifying a list of bindings. The list of bindings is ordered from highest priority to lowest priority. If the highest priority binding returns a value successfully when it is processed then there is never a need to process the other bindings in the list. It could be the case that the highest priority binding takes a long time to be evaluated, the next highest priority that returns a value successfully will be used until a binding of a higher priority returns a value successfully.

To demonstrate how PriorityBinding works, the AsyncDataSource object has been created with the following three properties: FastDP, SlowerDP, and SlowestDP.

The get accessor of FastDP returns the value of the _fastDP data member.

The get accessor of SlowerDP waits for 3 seconds before returning the value of the _slowerDP data member.

The get accessor of SlowestDP waits for 5 seconds before returning the value of the _slowestDP data member.

참고참고

This example is for demonstration purposes only. The Microsoft .NET guidelines recommend against defining properties that are orders of magnitude slower than a field set would be. For more information, see 속성과 메서드 간의 선택.


public class AsyncDataSource
{
	private string _fastDP;
	private string _slowerDP;
	private string _slowestDP;

	public AsyncDataSource()
	{
	}

	public string FastDP
	{
    get { return _fastDP; }
    set { _fastDP = value; }
	}

	public string SlowerDP
	{
    get
    {
      // This simulates a lengthy time before the
      // data being bound to is actualy available.
      Thread.Sleep(3000);
      return _slowerDP;
    }
    set { _slowerDP = value; }
	}

	public string SlowestDP
	{
    get
    {
      // This simulates a lengthy time before the
      // data being bound to is actualy available.
      Thread.Sleep(5000);
      return _slowestDP;
    }
    set { _slowestDP = value; }
	}
}


The Text property binds to the above AsyncDS using PriorityBinding:


<Window.Resources>
  <c:AsyncDataSource SlowestDP="Slowest Value" SlowerDP="Slower Value"
                     FastDP="Fast Value" x:Key="AsyncDS" />
</Window.Resources>
	
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"
  DataContext="{Binding Source={StaticResource AsyncDS}}">
  <TextBlock FontSize="18" FontWeight="Bold" Margin="10"
    HorizontalAlignment="Center">Priority Binding</TextBlock>
  <TextBlock Background="Honeydew" Width="100" HorizontalAlignment="Center">
    <TextBlock.Text>
      <PriorityBinding FallbackValue="defaultvalue">
        <Binding Path="SlowestDP" IsAsync="True"/>
        <Binding Path="SlowerDP" IsAsync="True"/>
        <Binding Path="FastDP" />
      </PriorityBinding>
    </TextBlock.Text>
  </TextBlock>	
</StackPanel>


When the binding engine processes the Binding objects, it starts with the first Binding, which is bound to the SlowestDP property. When this Binding is processed, it does not return a value successfully because it is sleeping for 5 seconds, so the next Binding element is processed. The next Binding does not return a value successfully because it is sleeping for 3 seconds. The binding engine then moves onto the next Binding element, which is bound to the FastDP property. This Binding returns the value "Fast Value". The TextBlock now displays the value "Fast Value".

After 3 seconds elapses, the SlowerDP property returns the value "Slower Value". The TextBlock then displays the value "Slower Value".

After 5 seconds elapses, the SlowestDP property returns the value "Slowest Value". That binding has the highest priority because it is listed first. The TextBlock now displays the value "Slowest Value".

See PriorityBinding for information about what is considered a successful return value from a binding.

.NET Framework

4, 3.5, 3.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

Windows 7, Windows Vista SP1 이상, Windows XP SP3, Windows Server 2008(Server Core는 지원되지 않음), Windows Server 2008 R2(Server Core는 SP1 이상에서 지원됨), Windows Server 2003 SP2

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft