나는 생각한다, 당신은 첨부 DependencyProperty
을 통해이 작업을 구현할 수있다. 뭐 그런 (이 간단한 작업 예제) : 당신은 DependencyProperty
에서 행동의 모든 종류를 넣을 수 있습니다
XAML
<Window x:Class="ShutdownAppHelp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ShutdownAppHelp"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style TargetType="{x:Type CheckBox}">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="local:ProgramBehaviours.Shutdown" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<CheckBox Content=" Shutdown" IsChecked="False" />
</Grid>
</Window>
Code behind
namespace ShutdownAppHelp
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
public static class ProgramBehaviours
{
// Shutdown program
public static void SetShutdown(DependencyObject target, bool value)
{
target.SetValue(ShutdownProperty, value);
}
public static readonly DependencyProperty ShutdownProperty =
DependencyProperty.RegisterAttached("Shutdown",
typeof(bool),
typeof(ProgramBehaviours),
new UIPropertyMetadata(false, OnShutdown));
// Here call function in UIPropertyMetadata()
private static void OnShutdown(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
if (e.NewValue is bool && ((bool)e.NewValue))
{
Application.Current.Shutdown();
}
}
}
}
만 코드와 전화를 통해 사용할 수 있습니다 그것 XAML :
<DataTrigger Binding="{Binding ElementName=SomeControl, Path=Tag}" Value="Shutdown">
<Setter Property="local:ProgramBehaviours.Shutdown" Value="True" />
</DataTrigger>
알스 오, 당신은 행동의 코드를 통해 직접 액세스 할 수 있습니다
ProgramBehaviours.SetShutdown(SomeControl, Value);
또는 XAML에서
조건없이 : 나는 코드 숨김 코드 수 없습니다
<SomeControl local:ProgramBehaviours.SetShutdown="True" ... />
합니다. 둘 다 (DB 연결 및 파일로드)는 컨트롤에 바인딩 된 속성입니다. – WAQ