2012-04-05 1 views
0

코드 뒤에서 DependencyObject를 컨트롤에 추가하려고합니다. 나는 절대적으로 성공하지 못하게하는 방법을 온라인으로 수색하고 조사했다. DependencyObject에는 DependencyProperty가 있습니다. 코드 숨김에서이 ​​속성을 설정하려고합니다.DependencyObject를 추가하여 코드 숨김 제어

차트 : ChartBehaviors는 DependencyObject에서 직접 상속합니다. 그것은 내가 쓴 학급입니다. 차트 컨트롤은 타사 컨트롤입니다.

차트 : ChartBehaviors.FloatingTooltip은 DependencyProperty입니다. 이것은 나 자신이 쓴 수업이기도합니다.

다음은 XAML에서의 모습입니다. 나는 "Behavior"를 켜고 끌 수 있도록 코드에서이 작업을 수행하려고합니다.

<charting:Chart> 
    <charting:ChartBehaviors.FloatingTooltip> 
     <charting:FloatingTooltipBehavior 
     TooltipTemplate="{StaticResource tooltipTemplate}" /> 
    </charting:ChartBehaviors.FloatingTooltip> 
</charting:Chart> 

답변

0

개체에 SetValue 메서드를 사용할 수 있습니다 (차트에 chart1의 ID를 제공한다고 가정).

var behave = new FloatingTooltipBehavior(); 
chart1.SetValue(ChartBehaviors.FloatingTooltipProperty, behave); 

또 다른 해결책은 행동에 Enabled 속성을 추가 한 다음 코드 뒤에 설정하는 것입니다.

+0

나는 전자를 사용했으며 훌륭하게 작동합니다. 감사! – stuckintheshuck

0

기본적으로 필요한 종속성 개체를 인스턴스화하고 적절한 방법을 사용하여 컨트롤에 추가합니다. 예를 들어, StackPanel의에 TextBlock의를 추가,이처럼 쓰기 :

TextBlock txtMyText = new TextBlock(); 
stackPanel.Children.Add(txtMyText); 

당신이 차트에 특정 동작을 추가하고자하는 경우, 당신은 단지 코드에 차트 개체를 얻을 수 및 특성을 찾아야한다 행동 같은 거지. 그럼 당신은 (그것을 하나의 행동 만의 경우) 동작을 할당하거나 StackPanel의에 같은 추가 중 하나

Chart myChart; 
myChart.Behavior = new FloatingTooltipBehavior(); 

이 구성 요소를 모른 채 정확한 구문을 말해 어렵다.

+0

Chart는 타사 컨트롤이며 클래스에 DependencyObjects 추가를위한 메커니즘이 없습니다. 그것은 단지 사용자 정의 DependencyObject입니다. 참조 : http://msdn.microsoft.com/en-us/library/system.windows.dependencyobject(v=vs.95).aspx – stuckintheshuck