Nasıl yapılır: Bir Yönteme Bağlama
Aşağıdaki örnekte kullanılarak bir yönteme nasıl bağlanacağını ObjectDataProvider gösterir.
Örnek
Bu örnekte, iki parametre (biri ve türünden biri) alan ve verilen değeri bir sıcaklık ölçeğinden diğerine dönüştüren yöntemine sahip TemperatureScaleConvertTemp bir doubleenumTempType) sınıftır. Aşağıdaki örnekte, ObjectDataProvider nesnesinin örneğini oluşturma için bir TemperatureScale kullanılır. yöntemi, ConvertTemp belirtilen iki parametreyle çağrılır.
<Window.Resources>
<ObjectDataProvider ObjectType="{x:Type local:TemperatureScale}"
MethodName="ConvertTemp" x:Key="convertTemp">
<ObjectDataProvider.MethodParameters>
<system:Double>0</system:Double>
<local:TempType>Celsius</local:TempType>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
<local:DoubleToString x:Key="doubleToString" />
</Window.Resources>
Artık yöntemi bir kaynak olarak kullanılabilir olduğu için sonuçlarına bağlanabilirsiniz. Aşağıdaki örnekte, ve Text ve TextBoxSelectedValueComboBox özelliğinin özelliği, yönteminin iki parametresine bağlıdır. Bu, kullanıcıların dönüştürülecek sıcaklığı ve dönüştürülecek sıcaklık ölçeğini belirtmelerini sağlar. örneğinin özelliğine bağlanacağız ve (nesnesi) tarafından sarmalanmış nesnenin özelliklerine bağlamamız nedeniyle olarak BindsDirectlyToSourcetrueMethodParametersObjectDataProviderObjectDataProviderTemperatureScale ayarlanmıştır.
Son ContentLabel güncelleştirmelerin, kullanıcı içeriğini veya seçimini değiştiren TextBoxComboBox güncelleştirmeleri.
<Label Grid.Row="1" HorizontalAlignment="Right">Enter the degree to convert:</Label>
<TextBox Grid.Row="1" Grid.Column="1" Name="tb">
<TextBox.Text>
<Binding Source="{StaticResource convertTemp}" Path="MethodParameters[0]"
BindsDirectlyToSource="true" UpdateSourceTrigger="PropertyChanged"
Converter="{StaticResource doubleToString}">
<Binding.ValidationRules>
<local:InvalidCharacterRule/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
<ComboBox Grid.Row="1" Grid.Column="2"
SelectedValue="{Binding Source={StaticResource convertTemp},
Path=MethodParameters[1], BindsDirectlyToSource=true}">
<local:TempType>Celsius</local:TempType>
<local:TempType>Fahrenheit</local:TempType>
</ComboBox>
<Label Grid.Row="2" HorizontalAlignment="Right">Result:</Label>
<Label Content="{Binding Source={StaticResource convertTemp}}"
Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2"/>
Dönüştürücü çift alır ve yönünde bir dizeye dönüştürür (bağlama kaynağından bağlama DoubleToString hedefine, yani özelliğidir) ve yönünde ConvertText bir'e stringdoubleConvertBack dönüştürür.
InvalidationCharacterRule, geçersiz karakterleri kontrol alan ValidationRule bir'tir. çevresinde kırmızı kenarlık olan varsayılan hata şablonu, giriş değeri çift TextBox değer olduğunda kullanıcılara bildirim verir.