Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c669e72189 | ||
|
|
46db5efef3 | ||
|
|
610418b42b | ||
|
|
508eb24fc3 | ||
|
|
6973272dd0 | ||
|
|
d820c4367e | ||
|
|
96e1f85d6f | ||
|
|
6fa5ca5aa9 |
@@ -1,7 +1,7 @@
|
|||||||
<Project>
|
<Project>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Version>7.13.5</Version>
|
<Version>7.13.7</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|||||||
@@ -5,10 +5,10 @@
|
|||||||
<CentralPackageVersionOverrideEnabled>false</CentralPackageVersionOverrideEnabled>
|
<CentralPackageVersionOverrideEnabled>false</CentralPackageVersionOverrideEnabled>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="11.3.2" />
|
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="11.3.3" />
|
||||||
<PackageVersion Include="Avalonia.Desktop" Version="11.3.2" />
|
<PackageVersion Include="Avalonia.Desktop" Version="11.3.3" />
|
||||||
<PackageVersion Include="Avalonia.Diagnostics" Version="11.3.2" />
|
<PackageVersion Include="Avalonia.Diagnostics" Version="11.3.3" />
|
||||||
<PackageVersion Include="Avalonia.ReactiveUI" Version="11.3.2" />
|
<PackageVersion Include="Avalonia.ReactiveUI" Version="11.3.3" />
|
||||||
<PackageVersion Include="CliWrap" Version="3.9.0" />
|
<PackageVersion Include="CliWrap" Version="3.9.0" />
|
||||||
<PackageVersion Include="Downloader" Version="4.0.2" />
|
<PackageVersion Include="Downloader" Version="4.0.2" />
|
||||||
<PackageVersion Include="H.NotifyIcon.Wpf" Version="2.3.0" />
|
<PackageVersion Include="H.NotifyIcon.Wpf" Version="2.3.0" />
|
||||||
|
|||||||
@@ -246,6 +246,7 @@ public class ConfigHandler
|
|||||||
item.PublicKey = profileItem.PublicKey;
|
item.PublicKey = profileItem.PublicKey;
|
||||||
item.ShortId = profileItem.ShortId;
|
item.ShortId = profileItem.ShortId;
|
||||||
item.SpiderX = profileItem.SpiderX;
|
item.SpiderX = profileItem.SpiderX;
|
||||||
|
item.Mldsa65Verify = profileItem.Mldsa65Verify;
|
||||||
item.Extra = profileItem.Extra;
|
item.Extra = profileItem.Extra;
|
||||||
item.MuxEnabled = profileItem.MuxEnabled;
|
item.MuxEnabled = profileItem.MuxEnabled;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ public class CoreHandler
|
|||||||
Environment.SetEnvironmentVariable(Global.V2RayLocalAsset, Utils.GetBinPath(""), EnvironmentVariableTarget.Process);
|
Environment.SetEnvironmentVariable(Global.V2RayLocalAsset, Utils.GetBinPath(""), EnvironmentVariableTarget.Process);
|
||||||
Environment.SetEnvironmentVariable(Global.XrayLocalAsset, Utils.GetBinPath(""), EnvironmentVariableTarget.Process);
|
Environment.SetEnvironmentVariable(Global.XrayLocalAsset, Utils.GetBinPath(""), EnvironmentVariableTarget.Process);
|
||||||
Environment.SetEnvironmentVariable(Global.XrayLocalCert, Utils.GetBinPath(""), EnvironmentVariableTarget.Process);
|
Environment.SetEnvironmentVariable(Global.XrayLocalCert, Utils.GetBinPath(""), EnvironmentVariableTarget.Process);
|
||||||
|
// TODO Temporary addition to support proper use of sing-box v1.12
|
||||||
|
Environment.SetEnvironmentVariable("ENABLE_DEPRECATED_SPECIAL_OUTBOUNDS", "true", EnvironmentVariableTarget.Process);
|
||||||
|
|
||||||
//Copy the bin folder to the storage location (for init)
|
//Copy the bin folder to the storage location (for init)
|
||||||
if (Environment.GetEnvironmentVariable(Global.LocalAppData) == "1")
|
if (Environment.GetEnvironmentVariable(Global.LocalAppData) == "1")
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ public sealed class CoreInfoHandler
|
|||||||
{
|
{
|
||||||
CoreType = ECoreType.hysteria,
|
CoreType = ECoreType.hysteria,
|
||||||
CoreExes = ["hysteria"],
|
CoreExes = ["hysteria"],
|
||||||
Arguments = "-c {0}",
|
Arguments = "",
|
||||||
Url = GetCoreUrl(ECoreType.hysteria),
|
Url = GetCoreUrl(ECoreType.hysteria),
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -180,7 +180,7 @@ public sealed class CoreInfoHandler
|
|||||||
{
|
{
|
||||||
CoreType = ECoreType.hysteria2,
|
CoreType = ECoreType.hysteria2,
|
||||||
CoreExes = ["hysteria-windows-amd64", "hysteria-linux-amd64", "hysteria"],
|
CoreExes = ["hysteria-windows-amd64", "hysteria-linux-amd64", "hysteria"],
|
||||||
Arguments = "-c {0}",
|
Arguments = "",
|
||||||
Url = GetCoreUrl(ECoreType.hysteria2),
|
Url = GetCoreUrl(ECoreType.hysteria2),
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -59,6 +59,10 @@ public class BaseFmt
|
|||||||
{
|
{
|
||||||
dicQuery.Add("spx", Utils.UrlEncode(item.SpiderX));
|
dicQuery.Add("spx", Utils.UrlEncode(item.SpiderX));
|
||||||
}
|
}
|
||||||
|
if (item.Mldsa65Verify.IsNotEmpty())
|
||||||
|
{
|
||||||
|
dicQuery.Add("pqv", Utils.UrlEncode(item.Mldsa65Verify));
|
||||||
|
}
|
||||||
if (item.AllowInsecure.Equals("true"))
|
if (item.AllowInsecure.Equals("true"))
|
||||||
{
|
{
|
||||||
dicQuery.Add("allowInsecure", "1");
|
dicQuery.Add("allowInsecure", "1");
|
||||||
@@ -159,6 +163,7 @@ public class BaseFmt
|
|||||||
item.PublicKey = Utils.UrlDecode(query["pbk"] ?? "");
|
item.PublicKey = Utils.UrlDecode(query["pbk"] ?? "");
|
||||||
item.ShortId = Utils.UrlDecode(query["sid"] ?? "");
|
item.ShortId = Utils.UrlDecode(query["sid"] ?? "");
|
||||||
item.SpiderX = Utils.UrlDecode(query["spx"] ?? "");
|
item.SpiderX = Utils.UrlDecode(query["spx"] ?? "");
|
||||||
|
item.Mldsa65Verify = Utils.UrlDecode(query["pqv"] ?? "");
|
||||||
item.AllowInsecure = (query["allowInsecure"] ?? "") == "1" ? "true" : "";
|
item.AllowInsecure = (query["allowInsecure"] ?? "") == "1" ? "true" : "";
|
||||||
|
|
||||||
item.Network = query["type"] ?? nameof(ETransport.tcp);
|
item.Network = query["type"] ?? nameof(ETransport.tcp);
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ public class ProfileItem : ReactiveObject
|
|||||||
public string PublicKey { get; set; }
|
public string PublicKey { get; set; }
|
||||||
public string ShortId { get; set; }
|
public string ShortId { get; set; }
|
||||||
public string SpiderX { get; set; }
|
public string SpiderX { get; set; }
|
||||||
|
public string Mldsa65Verify { get; set; }
|
||||||
public string Extra { get; set; }
|
public string Extra { get; set; }
|
||||||
public bool? MuxEnabled { get; set; }
|
public bool? MuxEnabled { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -340,6 +340,7 @@ public class TlsSettings4Ray
|
|||||||
public string? publicKey { get; set; }
|
public string? publicKey { get; set; }
|
||||||
public string? shortId { get; set; }
|
public string? shortId { get; set; }
|
||||||
public string? spiderX { get; set; }
|
public string? spiderX { get; set; }
|
||||||
|
public string? mldsa65Verify { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TcpSettings4Ray
|
public class TcpSettings4Ray
|
||||||
|
|||||||
9
v2rayN/ServiceLib/Resx/ResUI.Designer.cs
generated
9
v2rayN/ServiceLib/Resx/ResUI.Designer.cs
generated
@@ -2517,6 +2517,15 @@ namespace ServiceLib.Resx {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 Mldsa65Verify 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
public static string TbMldsa65Verify {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TbMldsa65Verify", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 Transport protocol(network) 的本地化字符串。
|
/// 查找类似 Transport protocol(network) 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1398,4 +1398,7 @@
|
|||||||
<data name="SudoIncorrectPasswordTip" xml:space="preserve">
|
<data name="SudoIncorrectPasswordTip" xml:space="preserve">
|
||||||
<value>Incorrect password, please try again.</value>
|
<value>Incorrect password, please try again.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbMldsa65Verify" xml:space="preserve">
|
||||||
|
<value>Mldsa65Verify</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1398,4 +1398,7 @@
|
|||||||
<data name="SudoIncorrectPasswordTip" xml:space="preserve">
|
<data name="SudoIncorrectPasswordTip" xml:space="preserve">
|
||||||
<value>Incorrect password, please try again.</value>
|
<value>Incorrect password, please try again.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbMldsa65Verify" xml:space="preserve">
|
||||||
|
<value>Mldsa65Verify</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -1398,4 +1398,7 @@
|
|||||||
<data name="SudoIncorrectPasswordTip" xml:space="preserve">
|
<data name="SudoIncorrectPasswordTip" xml:space="preserve">
|
||||||
<value>Incorrect password, please try again.</value>
|
<value>Incorrect password, please try again.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbMldsa65Verify" xml:space="preserve">
|
||||||
|
<value>Mldsa65Verify</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -1395,4 +1395,7 @@
|
|||||||
<data name="SudoIncorrectPasswordTip" xml:space="preserve">
|
<data name="SudoIncorrectPasswordTip" xml:space="preserve">
|
||||||
<value>密码错误,请重试。</value>
|
<value>密码错误,请重试。</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbMldsa65Verify" xml:space="preserve">
|
||||||
|
<value>Mldsa65Verify</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -1395,4 +1395,7 @@
|
|||||||
<data name="SudoIncorrectPasswordTip" xml:space="preserve">
|
<data name="SudoIncorrectPasswordTip" xml:space="preserve">
|
||||||
<value>密碼錯誤,請重試。</value>
|
<value>密碼錯誤,請重試。</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbMldsa65Verify" xml:space="preserve">
|
||||||
|
<value>Mldsa65Verify</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -944,6 +944,7 @@ public class CoreConfigV2rayService
|
|||||||
publicKey = node.PublicKey,
|
publicKey = node.PublicKey,
|
||||||
shortId = node.ShortId,
|
shortId = node.ShortId,
|
||||||
spiderX = node.SpiderX,
|
spiderX = node.SpiderX,
|
||||||
|
mldsa65Verify = node.Mldsa65Verify,
|
||||||
show = false,
|
show = false,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -107,6 +107,7 @@ public class ThemeSettingViewModel : MyReactiveObject
|
|||||||
x.OfType<Button>(),
|
x.OfType<Button>(),
|
||||||
x.OfType<TextBox>(),
|
x.OfType<TextBox>(),
|
||||||
x.OfType<TextBlock>(),
|
x.OfType<TextBlock>(),
|
||||||
|
x.OfType<SelectableTextBlock>(),
|
||||||
x.OfType<Menu>(),
|
x.OfType<Menu>(),
|
||||||
x.OfType<ContextMenu>(),
|
x.OfType<ContextMenu>(),
|
||||||
x.OfType<DataGridRow>(),
|
x.OfType<DataGridRow>(),
|
||||||
@@ -146,6 +147,7 @@ public class ThemeSettingViewModel : MyReactiveObject
|
|||||||
x.OfType<Button>(),
|
x.OfType<Button>(),
|
||||||
x.OfType<TextBox>(),
|
x.OfType<TextBox>(),
|
||||||
x.OfType<TextBlock>(),
|
x.OfType<TextBlock>(),
|
||||||
|
x.OfType<SelectableTextBlock>(),
|
||||||
x.OfType<Menu>(),
|
x.OfType<Menu>(),
|
||||||
x.OfType<ContextMenu>(),
|
x.OfType<ContextMenu>(),
|
||||||
x.OfType<DataGridRow>(),
|
x.OfType<DataGridRow>(),
|
||||||
|
|||||||
@@ -753,7 +753,7 @@
|
|||||||
Grid.Row="7"
|
Grid.Row="7"
|
||||||
ColumnDefinitions="180,Auto"
|
ColumnDefinitions="180,Auto"
|
||||||
IsVisible="False"
|
IsVisible="False"
|
||||||
RowDefinitions="Auto,Auto,Auto,Auto,Auto">
|
RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto">
|
||||||
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="0"
|
Grid.Row="0"
|
||||||
@@ -823,6 +823,20 @@
|
|||||||
Width="400"
|
Width="400"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
HorizontalAlignment="Left" />
|
HorizontalAlignment="Left" />
|
||||||
|
|
||||||
|
<TextBlock
|
||||||
|
Grid.Row="5"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="{StaticResource Margin4}"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Text="{x:Static resx:ResUI.TbMldsa65Verify}" />
|
||||||
|
<TextBox
|
||||||
|
x:Name="txtMldsa65Verify"
|
||||||
|
Grid.Row="5"
|
||||||
|
Grid.Column="1"
|
||||||
|
Width="400"
|
||||||
|
Margin="{StaticResource Margin4}"
|
||||||
|
HorizontalAlignment="Left" />
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator Grid.Row="8" Margin="{StaticResource MarginTb8}" />
|
<Separator Grid.Row="8" Margin="{StaticResource MarginTb8}" />
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -185,6 +185,7 @@ public partial class AddServerWindow : WindowBase<AddServerViewModel>
|
|||||||
this.Bind(ViewModel, vm => vm.SelectedSource.PublicKey, v => v.txtPublicKey.Text).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.SelectedSource.PublicKey, v => v.txtPublicKey.Text).DisposeWith(disposables);
|
||||||
this.Bind(ViewModel, vm => vm.SelectedSource.ShortId, v => v.txtShortId.Text).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.SelectedSource.ShortId, v => v.txtShortId.Text).DisposeWith(disposables);
|
||||||
this.Bind(ViewModel, vm => vm.SelectedSource.SpiderX, v => v.txtSpiderX.Text).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.SelectedSource.SpiderX, v => v.txtSpiderX.Text).DisposeWith(disposables);
|
||||||
|
this.Bind(ViewModel, vm => vm.SelectedSource.Mldsa65Verify, v => v.txtMldsa65Verify.Text).DisposeWith(disposables);
|
||||||
|
|
||||||
this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables);
|
this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -69,15 +69,15 @@
|
|||||||
IsChecked="True"
|
IsChecked="True"
|
||||||
Theme="{DynamicResource SimpleToggleSwitch}" />
|
Theme="{DynamicResource SimpleToggleSwitch}" />
|
||||||
</WrapPanel>
|
</WrapPanel>
|
||||||
<TextBox
|
|
||||||
|
<ScrollViewer x:Name="msgScrollViewer" VerticalScrollBarVisibility="Auto">
|
||||||
|
<SelectableTextBlock
|
||||||
Name="txtMsg"
|
Name="txtMsg"
|
||||||
VerticalAlignment="Stretch"
|
VerticalAlignment="Stretch"
|
||||||
BorderThickness="0"
|
|
||||||
Classes="TextArea"
|
Classes="TextArea"
|
||||||
IsReadOnly="True"
|
|
||||||
TextAlignment="Left"
|
TextAlignment="Left"
|
||||||
TextWrapping="Wrap">
|
TextWrapping="Wrap">
|
||||||
<TextBox.ContextMenu>
|
<SelectableTextBlock.ContextMenu>
|
||||||
<ContextMenu>
|
<ContextMenu>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
x:Name="menuMsgViewSelectAll"
|
x:Name="menuMsgViewSelectAll"
|
||||||
@@ -96,7 +96,8 @@
|
|||||||
Click="menuMsgViewClear_Click"
|
Click="menuMsgViewClear_Click"
|
||||||
Header="{x:Static resx:ResUI.menuMsgViewClear}" />
|
Header="{x:Static resx:ResUI.menuMsgViewClear}" />
|
||||||
</ContextMenu>
|
</ContextMenu>
|
||||||
</TextBox.ContextMenu>
|
</SelectableTextBlock.ContextMenu>
|
||||||
</TextBox>
|
</SelectableTextBlock>
|
||||||
|
</ScrollViewer>
|
||||||
</DockPanel>
|
</DockPanel>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Reactive.Disposables;
|
using System.Reactive.Disposables;
|
||||||
|
using Avalonia.Controls;
|
||||||
using Avalonia.Interactivity;
|
using Avalonia.Interactivity;
|
||||||
using Avalonia.ReactiveUI;
|
using Avalonia.ReactiveUI;
|
||||||
using Avalonia.Threading;
|
using Avalonia.Threading;
|
||||||
@@ -9,9 +10,12 @@ namespace v2rayN.Desktop.Views;
|
|||||||
|
|
||||||
public partial class MsgView : ReactiveUserControl<MsgViewModel>
|
public partial class MsgView : ReactiveUserControl<MsgViewModel>
|
||||||
{
|
{
|
||||||
|
private readonly ScrollViewer _scrollViewer;
|
||||||
|
|
||||||
public MsgView()
|
public MsgView()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
_scrollViewer = this.FindControl<ScrollViewer>("msgScrollViewer");
|
||||||
|
|
||||||
ViewModel = new MsgViewModel(UpdateViewHandler);
|
ViewModel = new MsgViewModel(UpdateViewHandler);
|
||||||
|
|
||||||
@@ -43,14 +47,14 @@ public partial class MsgView : ReactiveUserControl<MsgViewModel>
|
|||||||
txtMsg.Text = msg.ToString();
|
txtMsg.Text = msg.ToString();
|
||||||
if (togScrollToEnd.IsChecked ?? true)
|
if (togScrollToEnd.IsChecked ?? true)
|
||||||
{
|
{
|
||||||
txtMsg.CaretIndex = int.MaxValue;
|
_scrollViewer?.ScrollToEnd();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ClearMsg()
|
public void ClearMsg()
|
||||||
{
|
{
|
||||||
ViewModel?.ClearMsg();
|
ViewModel?.ClearMsg();
|
||||||
txtMsg.Clear();
|
txtMsg.Text = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void menuMsgViewSelectAll_Click(object? sender, RoutedEventArgs e)
|
private void menuMsgViewSelectAll_Click(object? sender, RoutedEventArgs e)
|
||||||
|
|||||||
@@ -979,6 +979,7 @@
|
|||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="180" />
|
<ColumnDefinition Width="180" />
|
||||||
@@ -1064,6 +1065,22 @@
|
|||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
Style="{StaticResource DefTextBox}" />
|
Style="{StaticResource DefTextBox}" />
|
||||||
|
|
||||||
|
<TextBlock
|
||||||
|
Grid.Row="5"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="{StaticResource Margin4}"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Style="{StaticResource ToolbarTextBlock}"
|
||||||
|
Text="{x:Static resx:ResUI.TbMldsa65Verify}" />
|
||||||
|
<TextBox
|
||||||
|
x:Name="txtMldsa65Verify"
|
||||||
|
Grid.Row="5"
|
||||||
|
Grid.Column="1"
|
||||||
|
Width="400"
|
||||||
|
Margin="{StaticResource Margin4}"
|
||||||
|
HorizontalAlignment="Left"
|
||||||
|
Style="{StaticResource DefTextBox}" />
|
||||||
</Grid>
|
</Grid>
|
||||||
<Separator
|
<Separator
|
||||||
Grid.Row="8"
|
Grid.Row="8"
|
||||||
|
|||||||
@@ -179,6 +179,7 @@ public partial class AddServerWindow
|
|||||||
this.Bind(ViewModel, vm => vm.SelectedSource.PublicKey, v => v.txtPublicKey.Text).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.SelectedSource.PublicKey, v => v.txtPublicKey.Text).DisposeWith(disposables);
|
||||||
this.Bind(ViewModel, vm => vm.SelectedSource.ShortId, v => v.txtShortId.Text).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.SelectedSource.ShortId, v => v.txtShortId.Text).DisposeWith(disposables);
|
||||||
this.Bind(ViewModel, vm => vm.SelectedSource.SpiderX, v => v.txtSpiderX.Text).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.SelectedSource.SpiderX, v => v.txtSpiderX.Text).DisposeWith(disposables);
|
||||||
|
this.Bind(ViewModel, vm => vm.SelectedSource.Mldsa65Verify, v => v.txtMldsa65Verify.Text).DisposeWith(disposables);
|
||||||
|
|
||||||
this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables);
|
this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user