我正在学习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)
我创建了一个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等).
怎么弄这个?
我在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事件处理程序?
我有一个用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事件中,它会发生故障.帮我!
这是一种好奇心。我可以通过管道命令从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)
但这不起作用。有什么建议吗?提前致谢