小编dav*_*rtu的帖子

如何在XAML中使用枚举类型?

我正在学习WPF,我遇到了以下问题:

我的另一个命名空间中的枚举类型比我的XAML:

 public enum NodeType
    {
        Type_SYSTEM = 1,              // System
        Type_DB = 2,                  // Database
        Type_ROOT = 512,              // Root folder
        Type_FOLDER = 1024,           // Folder
    }
Run Code Online (Sandbox Code Playgroud)

在我的XAML中,我想用整数触发图像

<Image.Style>
    <Style TargetType="{x:Type Image}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Type}" Value="{NodeType: }">
                <Setter Property="Source" Value="/Images/DB.PNG"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding Type}" Value="128">
                <Setter Property="Source" Value="/Images/SERVER.PNG"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</Image.Style>
Run Code Online (Sandbox Code Playgroud)

有没有办法获取整数值并直接在XAML代码中将其与枚举类型进行比较?

我的枚举是命名空间 AnotherNamespace.Types

<DataTrigger Binding="{Binding IntegerType}" Value="MyEnumType.Type_DB">
                                        <Setter Property="Source" Value="/Images/SERVER.PNG"/> 
Run Code Online (Sandbox Code Playgroud)

c# wpf enums xaml triggers

33
推荐指数
2
解决办法
4万
查看次数

创建自定义wpf事件

我创建了一个UserControl for Database连接,用户输入用户名和密码进行连接.此UserControl位于MainWindow.xaml中

现在,在我的UserControl后面的代码中,我创建了一个MSSQL连接.如果登录成功,我想提升自定义事件以在MainWindow中公开.

例如,在MyUserControl.xaml.cs中

try
{

    using (SqlConnection sqlConn = new SqlConnection(connection))
    {
        sqlConn.Open();
        MessageBox.Show("Connessione Riuscita!", "Connessione a " + TextIP.Text, MessageBoxButton.OK, MessageBoxImage.Information);
        RaiseMyEvent();
        sqlConn.Close();                 
    }
}
catch (SqlException ex)
{
    MessageBox.Show("Connessione Fallita: " + ex.Message, "Connessione a " + TextIP.Text, MessageBoxButton.OK, MessageBoxImage.Error);
}
Run Code Online (Sandbox Code Playgroud)

并在MainWindow.xaml我想使用mypersonalized事件:

<Window x:Class="XLogin.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525"
        xmlns:local="clr-namespace:XLogin" WindowStartupLocation="CenterScreen">
    <Grid>
        <local:DBLogin x:Name="DBLoginFrame" MyPersonalizedUCEvent="DBLoginFrame_MyPersonalizedUCEvent"/>
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

我需要这个用于多种类型的连接(MSSQL,Oracle,MySql等).

怎么弄这个?

c# wpf events xaml custom-event

16
推荐指数
2
解决办法
4万
查看次数

如何在WPF窗口中触发Usercontrol的Unload事件

我在WPF中有一个UserControl:

<UserControl x:Class="XLogin.DBLogin"
             x:Name="DBLoginUserFrame"
             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"
             mc:Ignorable="d"
             Height="263"
             Width="353"
             Loaded="DBLoginUserFrame_Loaded"
             Unloaded="DBLoginUserFrame_Unloaded">
  <Grid>
    <GroupBox Header="Database Connection"
              HorizontalAlignment="Left"
              Height="243"
              Margin="10,10,0,0"
              VerticalAlignment="Top"
              Width="333">
      <Grid>
        <TextBox x:Name="TextUserDB"
                 HorizontalAlignment="Left"
                 Height="20"
                 Margin="101,60,0,0"
                 TextWrapping="Wrap"
                 VerticalAlignment="Top"
                 Width="173" />
        <Label Content="Password:"
               HorizontalAlignment="Left"
               Height="24"
               VerticalAlignment="Top"
               Width="70"
               HorizontalContentAlignment="Right"
               Margin="10,85,0,0" />
        <PasswordBox x:Name="TextPasswordDB"
                     HorizontalAlignment="Left"
                     Height="20"
                     Margin="101,89,0,0"
                     VerticalAlignment="Top"
                     Width="173" />
        <Button x:Name="BtnConnect"
                Content="Connetti"
                Height="29"
                Width="123"
                Margin="101,152,97,24"
                Click="BtnConnect_Click" />
      </Grid>
    </GroupBox>

  </Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

当我卸载此控件时,WPF引发事件DBLoginUserFrame_Unloaded,保存我的设置,它完成一项工作.

我在WPF中的MainWindow加载了这个用户控件但是当窗口关闭时,我的usercontrol UNLOAD不会触发:

<Window x:Class="XLogin.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525"
    xmlns:local="clr-namespace:XLogin" Unloaded="Window_Unloaded_1">
<Grid>
    <local:DBLogin/>
</Grid></Window>
Run Code Online (Sandbox Code Playgroud)

如何将UserControl Unload事件添加到MainWindow事件处理程序?

wpf events xaml user-controls routedevents

15
推荐指数
2
解决办法
3万
查看次数

在Visual Studio后期构建事件中运行交互式批处理

我有一个用vb.net编写的程序.构建之后,我想启动一个远程执行psexec命令的交互式批处理文件.我怎样才能做到这一点?这是我的帖子构建事件:

call "$(ProjectDir)ExecOnGw.bat"
Run Code Online (Sandbox Code Playgroud)

这是我的批处理,如果它在正常的命令提示符下运行,执行就可以了.

c:\Sysinternal\psexec.exe \\gateway "C:\Remotepath\mybatch.bat" -u mydomain\myuser -p ******
pause
Run Code Online (Sandbox Code Playgroud)

这个批处理调用远程机器上的另一个批处理,然后如果我要退出,我必须按"q"和"Enter".在正常的命令提示符下,它工作正常.但是在Visual Studio post build事件中,它会发生故障.帮我!

vb.net batch-file visual-studio-2010 psexec

8
推荐指数
1
解决办法
1527
查看次数

启动Nano编辑器传递管道命令

这是一种好奇心。我可以通过管道命令从bash启动nano编辑器吗?这是我的情况:我有一个日志文件,其日期格式为tai64。为了打印我的文件,我启动:

$> cat /var/log/qmail/current | tai64nlocal
Run Code Online (Sandbox Code Playgroud)

打印我想要的。但是我想用一个命令在nano或其他编辑器中查看此内容。例如:

$> cat /var/log/qmail/current | tai64nlocal > nano
Run Code Online (Sandbox Code Playgroud)

但这不起作用。有什么建议吗?提前致谢

unix linux bash shell nano

5
推荐指数
2
解决办法
1322
查看次数