我有这个用户控件:
我将此用户控件添加到我的Winforms
应用程序(简单的BusyIndicator)
UserControl x:Class="Stackoverflow.MyBusyIndicator"
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>
我想要的是定义Method
我可以从c#代码访问以停止此指示符。
答案 0 :(得分:0)
我相信你想在后面的代码中做什么?
public partial class MyBusyIndicator : UserControl
{
public void ToggleIndicator(bool isBusy)
{
// Just an example, in reality you will want to access the BusyIndicator object.
this.IsBusy = isBusy;
}
}
答案 1 :(得分:0)
试试这个:
<UserControl x:Class="Stackoverflow.MyBusyIndicator"
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="myBusyIndicator" IsBusy="True" />
</Grid>
</UserControl>
Code Bahind:
namespace Stackoverflow
{
using System;
using System.Windows;
using System.Windows.Controls;
public partial class MyBusyIndicator : UserControl
{
public MyBusyIndicator()
{
this.InitializeComponent();
}
public void ShowIndicator(bool isBusy)
{
this.myBusyIndicator.IsBusy = isBusy;
}
}
}
答案 2 :(得分:0)
您的XAML代码很好,现在只需创建一个依赖属性并调用它,然后使用DataBinding(可视地指示IsBusy属性状态)将其绑定到UserControl XAML中,然后使用#34; IsBusy&#34;
public partial class BusyIndicator : UserControl
{
public BusyIndicator()
{
InitializeComponent();
}
public bool IsBusy
{
get { return (bool)GetValue(IsBusyProperty); }
set { SetValue(IsBusyProperty, value); }
}
public static readonly DependencyProperty IsBusyProperty =
DependencyProperty.Register("IsBusy", typeof(bool), typeof(BusyIndicator),
new PropertyMetadata(false));
}
答案 3 :(得分:0)
如果你必须通过代码隐藏来访问它,首先通过Xaml首先为BusyIndicator控件提供一个name属性:
<xctk:BusyIndicator IsBusy="True" x:Name="busyIndicator" />
在你的代码背后创建一个方法如下:
void SetIndicator(bool isBusy)
{
this.busyIndicator.IsBusy = isBusy;
}
如果您正在使用MVVM绑定您的控件的IsBusyProperty IsBusy={Binding IsBusy}
<xctk:BusyIndicator IsBusy={Binding IsBusy} />
在你的viewmodel中定义IsBusy属性和create方法如下:
void SetIndicator(bool isBusy)
{
IsBusy = isBusy;
}
因此,下次要设置为True时调用SetIndicator(true),或者如果要将其设置为false,则调用SetIndicator(false)。