사용자 지정 컨트롤을 만들었으며 XAML에서 사용자 지정 컨트롤의 Observable 컬렉션에있는 항목의 속성에 제대로 바인딩하는 방법을 알고 싶습니다. 사용자 정의 컨트롤 속성은 다음과 같습니다.XAML 사용자 지정 컨트롤에 바인딩
Public Property MyPoints As ObservableDependencyObjectCollection(Of MyPoint)
Get
Return CType(GetValue(MyPointsProperty), ObservableDependencyObjectCollection(Of MyPoint))
End Get
Set(value As ObservableDependencyObjectCollection(Of MyPoint))
SetValue(MyPointsProperty, value)
End Set
End Property
MyPoint이 두 가지 속성의 X를 포함하고 Y
전체 XAML
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" xmlns:my="clr-namespace:WpfDependencyPropertyVB">
<Grid>
<my:CustomControl1 HorizontalAlignment="Left" Margin="322,212,0,0" x:Name="CustomControl11" VerticalAlignment="Top" Width="145" Height="67">
<my:CustomControl1.MyPoints>
<my:MyPoint X="100" Y="{Binding Value, ElementName=Slider1}" />
</my:CustomControl1.MyPoints>
</my:CustomControl1>
<Slider Height="26" HorizontalAlignment="Left" Margin="23,174,0,0" Name="Slider1" VerticalAlignment="Top" Width="273" />
<Label Content="{Binding Value, ElementName=Slider1}" Height="41" HorizontalAlignment="Left" Margin="329,145,0,0" Name="Label1" VerticalAlignment="Top" Width="135" />
</Grid>
여기
내 XAML에서 코드 설정 외모과 같이 입력 :
<my:CustomControl1 x:Name="CustomControl11" >
<my:CustomControl1.MyPoints>
<my:MyPoint X="100" Y="{Binding Value, ElementName=Slider1}" />
</my:CustomControl1.MyPoints>
</my:CustomControl1>
컨트롤에 중단 점을 설정하면 X = 100이지만 슬라이더 값이 변경 될 때 Y가 업데이트되지 않는다는 것을 알 수 있습니다.
도움을 주시면 감사하겠습니다.
확인 Visual Studio 출력 창. 거기에 바인딩 오류가 표시 될 수 있습니다. –
맞습니다. 그러나 나는 올바르게 바인딩하는 방법을 분발하지 않습니다. BindingExpression : Path = Value; DataItem = null; 대상 요소가 'MyPoint'(HashCode = 16014678)이고 대상 속성이 'System.Windows.Data Error : 2 : 대상 요소에 대한 FrameworkElement 또는 FrameworkContentElement를 찾을 수 없습니다. Y '('Double '을 입력하십시오.) – Paul
전체 XAML을 게시하십시오 (슬라이더 등 포함). –