我有这个用户控件:我将此用户控件添加到我的Winforms应用程序(简单的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
:
UserControl1 uc = new UserControl1();
uc.SetIndicator(true);
此外,如果我将IsBusy="{Binding IsBusy}"
更改为IsBusy="true
,我可以看到我的BusyIndicator但我无法阻止它。
但是什么都没发生,我做错了什么?
答案 0 :(得分: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