2014-12-29 4 views
0

뒤에 코드에서 내 BusyIndicator을 시작 : 내 윈폼 응용 프로그램 (간단한 BusyIndicator)이 사용자 제어를 추가 : 내가 시작하려고 내 주요 양식에서 이제가 어떻게이 사용자 컨트롤이

<UserControl x:Class="MyApp.UserControl1"    
      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:xctk="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit" 
     mc:Ignorable="d" 
     d:DesignHeight="300" d:DesignWidth="300"> 
    <Grid> 
     <xctk:BusyIndicator x:Name="busyIndicator" IsBusy="{Binding IsBusy}" /> 
    </Grid> 
</UserControl> 



    public partial class UserControl1 : UserControl 
    { 
     public UserControl1() 
     { 
      InitializeComponent(); 
     } 

     public void SetIndicator(bool isBusy) 
     { 
      busyIndicator.IsBusy = isBusy; 
     } 
    } 

BusyIndocator : 내가 IsBusy="trueIsBusy="{Binding IsBusy}"을 변경하고있는 경우

UserControl1 uc = new UserControl1(); 
uc.SetIndicator(true); 

또한 내 BusyIndicator을 볼 수 있습니다하지만 나는 그것을 중지 할 수 없습니다.

하지만 아무 일도 일어나지 않습니다. 내가 잘못하고있는 것은 무엇입니까?

+1

1)이 윈폼 또는 WPF입니다 전화를? 그것은 후자가되어야하지만, 왜 winforms 태그?. 2) datacontext에서 IsBusy를 IsBusy로 바인딩하면 SetIndicator 메소드에서 IsBusy 속성을 수동으로 설정하는 이유는 무엇입니까? 3) 데이터 인터페이스를 어디에 설정합니까? –

+0

1) 이것은 winforms입니다. 2) busyIndicator.IsBusy = isBusy를 설정했습니다. SetIndicator 함수에서 3) datacontext는 무엇을 의미합니까? –

+0

winforms는 언제부터 xaml을 사용합니까? – Chris

답변

0

WPF에 익숙하지 않으므로 데이터 바인딩을 사용하지 마십시오. 코드를 사용하여 IsBusy 값을 설정하십시오.

당신의 형태로
<xctk:BusyIndicator x:Name="busyIndicator" /> //remove IsBusy="{Binding IsBusy}" 

UserControl1의 인스턴스를 정의하고 이름 uc을 제공;

public partial class MyForm : Form 
{   
    UserControl1 uc; //this is the "instance". 
    public MyForm() 
    { 
     InitializeComponent(); 
     uc = new UserControl1(); 
     uc.SetIndicator(true); //start the busy indicator 
     this.elementHost1.Child = uc; 
    } 
} 

그리고 당신이 그것을 중지하려면,

uc.SetIndicator(false); //stop the busy indicator 
+0

@kennuzx''SetIndicator()''메서드를 공유 할 수 있습니까? 나는 무엇을 해야할지 알 수 없다. 사용자 제어를위한 코드에서,''IsBusy'' 속성은 접근 할 수 없다. –