Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Aşağıdaki örnekte, ObjectDataProviderkullanarak bir yönteme nasıl bağlanacağınız gösterilmektedir.
Örnek
Bu örnekte, TemperatureScale, ConvertTempyöntemine sahip bir sınıftır. Bu yöntem, iki parametre alır (bunlardan biri double ve biri enum türünden TempType)) ve verilen değeri bir sıcaklık ölçeğinden diğerine dönüştürür. Aşağıdaki örnekte, ObjectDataProvider nesnesini başlatmak için bir TemperatureScale kullanılır.
ConvertTemp yöntemi 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ılabildiği için sonuçlarına bağlanabilirsiniz. Aşağıdaki örnekte, TextTextBox özelliği ve SelectedValueComboBox yöntemin 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 belirtmesine olanak tanır.
BindsDirectlyToSource (true nesnesi) tarafından sarmalanan nesnenin özelliklerine değil, MethodParameters örneğinin ObjectDataProvider özelliğine bağlandığımız için ObjectDataProviderTemperatureScale olarak ayarlandığını unutmayın.
Kullanıcı, Content içeriğini veya Labelseçimini değiştirdiğinde, son TextBoxComboBox güncellenir.
<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ü DoubleToString, bir çift alır ve Convert yönünde (bağlama kaynağından, Text özelliği olan bağlama hedefine) bir dizeye dönüştürür ve aynı zamanda string'ü double'e ConvertBack yönünde dönüştürür.
InvalidCharacterRule, geçersiz karakterleri denetleen bir ValidationRule.
TextBoxçevresindeki kırmızı kenarlık olan varsayılan hata şablonu, giriş değeri çift değer olmadığında kullanıcılara bildirimde bulunur.
Ayrıca bakınız
.NET Desktop feedback