在WPF MainWindow.xaml中显示IP地址

时间:2017-05-24 20:18:40

标签: c# xaml mvvm

如何在MainWindow.xaml上显示我的IP地址?(我有一个可以显示IP地址的控制台应用程序。如何将控制台应用程序与XAML文件结合起来?需要一些指导和建议。谢谢!

XAML文件:

<Window x:Class="DisplayIP.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DisplayIP"
mc:Ignorable="d"
Title="Display IP Address" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
    <RowDefinition/>
    <RowDefinition/>
    <RowDefinition/>
</Grid.RowDefinitions>
</Grid>
</Window>

控制台应用程序的C#代码:

class Program
{
    static void Main(string[] args)
    {
        NetworkInterface[] IF = NetworkInterface.GetAllNetworkInterfaces();

        foreach (NetworkInterface Interface in IF)
        {
            if (Interface.NetworkInterfaceType == NetworkInterfaceType.Loopback) continue;

            Console.WriteLine(" ");
            Console.WriteLine(Interface.Description);


            UnicastIPAddressInformationCollection UnicastIPInfoCol = Interface.GetIPProperties().UnicastAddresses;
            foreach (UnicastIPAddressInformation UnicatIPInfo in UnicastIPInfoCol)
            {
                Console.WriteLine("The IP address is:{0}", UnicatIPInfo.Address);
                Console.WriteLine("The Sub net is:{0}", UnicatIPInfo.IPv4Mask);
            }

        }
        Console.ReadKey();
        }


    }

1 个答案:

答案 0 :(得分:1)

一般来说,您希望拥有所有&#34;业务逻辑&#34;在你的情况下,在一个单独的方法(甚至类)中获取IP地址的代码片段。您的控制台应用程序应该只与用户通信,WPF应用程序也是如此。

所以,你将有2&#34;前端&#34;应用程序(WPF和控制台),用户可以使用它从后端代码(方法,类,命名空间或更大的应用程序 - 库)中获取业务逻辑。

所以,如果我是你,我会创建一个类(例如NetworkInfo),其中一个方法将返回有关地址和掩码的信息(关注单词return here here-该方法将数据返回给调用者,而不是在控制台上打印)。然后两个应用程序 - 控制台和WPF将从此类调用此方法,以获取所需的数据并相应地显示它 - 一个在控制台上使用Console.WriteLine,另一个在窗体或控件中使用XAML文件。