バインド可能なプロパティを持つUserControlがあります。このプロパティは、UserControl UIを更新する必要があります。 UserControlには2つのテキストブロックがあり、そのプロパティは1つのテキストブロックを文字列の半分で更新し、もう1つのテキストブロックを残りの半分で更新する必要があります。バインディングプロパティでUserControl UIを更新します。
UserControlのXAML:
<UserControl x:Class="HexView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:LearningWPF"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<TextBlock x:Name="txtOne" Width="100" Height="100" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,10,0,0">Hola</TextBlock>
<TextBlock x:Name="txtTwo" Width="100" Height="100" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="120,10,0,0">Adios</TextBlock>
</Grid>
</UserControl>
UserControlの分離コード(VB)
Imports System.ComponentModel
Public Class HexView
Private s_Rawstring As String
Public Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
End Sub
Public Shared ReadOnly RawStringProperty As DependencyProperty = DependencyProperty.Register("RawString", GetType(String), GetType(HexView))
Public Property Rawstring As String
Get
Return GetValue(RawStringProperty)
End Get
Set(value As String)
SetValue(RawStringProperty, value)
Parse()
End Set
End Property
Private Sub Parse()
txtOne.Text = Rawstring.Substring(0, Rawstring.Length/2)
txtTwo.Text = Rawstring.Substring(Rawstring.Length/2)
End Sub
End Class
私は
hexview.rawstring = "This is a sample property"
のようにプロパティを設定した場合、それはセッターaccesorを使用しているためUserControlUIが更新されるとメソッドParse()を実行します。ただし、databindを使用していません。
bフィードバックは高く評価されます。あなたは「取得」と、実際に呼び出されません。「設定」の背後にあるバインディング、コードを使用して依存関係プロパティにアクセスすると
はあなたに
これは良い答えですが、小さなバグがあります。 xamlでは、コードビハインドのDependency Propertyにバインドするので、BindingをRelativeSourceとして指定する必要があります。そうでない場合は、動作しません。 –
私はあなたの答えを編集し、StackOverflowは誰かがそれを見直したらそれが見えると言った。 –
私はそれを忘れてしまいました、ありがとう:D – Jai