[.Net] WPF NodeNetwork ํ๋ก์ ํธ ํ๊ฒฝ ๊ตฌ์ฑ ๋ฐ Hello World ๋ง๋ค๊ธฐ(์์ ํฌํจ)
NodeNetwork์ ๋ํ ๊ธฐ์ด ์ค๋ช ์ ์๋ ํฌ์คํ ์ ์ฐธ๊ณ ํ์ธ์.
[.Net] WPF NodeNetwork ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ํน์ง ์์๋ณด๊ธฐ
์๊ฐ
๋ณดํต ํ๋ก๊ทธ๋๋ฐ์ ์ฒ์ ๋ฐฐ์ฐ๋ฉด Hello world๋ถํฐ ์์์ ํ์ฃ . ์ด๋ ๋งจ ์ฒ์ ์ด๋ป๊ฒ ์์ํ๋์ง ๋ณด์ฌ์ฃผ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ณธ ํฌ์คํ ์ NodeNetwork ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ์ด๋ป๊ฒ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๊ณ ์ด๋ค ๋์์ ํ๋์ง ๋ณด์ฌ์ฃผ๊ณ ์ ํฉ๋๋ค. ์ฐ์ ๊ฒฐ๊ณผ๋ฌผ์ ์๋์ ๊ฐ์ต๋๋ค.
WPF ํ๊ฒฝ ๊ตฌ์ฑํ๊ธฐ
์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด WPF ์ฑ(.NET Framework)์ ์ ํํ๊ณ ExamNodeUI ์ด๋ฆ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค.
๋๊ฒ ํจํค์ง์์ NodeNetwork๋ฅผ ์ค์นํ๊ธฐ ์ ์ ํ๋ก์ ํธ ์์ฑ์์ ํ๋ ์์ํฌ๋ฅผ 4.7.2๋ก ๋ณ๊ฒฝํฉ๋๋ค. NodeNetwork v6.0.0์ .NET Framework 4.7.2 ์ด์์์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
๋๊ฒ ํจํค์ง์์ NodeNetwork๋ฅผ ๊ฒ์ํ๊ณ ํ๋ก์ ํธ์ ์ค์นํฉ๋๋ค.
Hello world ํ๋ก์ ํธ ๋ง๋ค๊ธฐ
ํ๋ก์ ํธ์ App.xaml.cs ํ์ผ์ ์๋์ ํ์ํ ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using NodeNetwork; //namespace ์ถ๊ฐ
namespace ExamNodeUI
{
/// <summary>
/// App.xaml์ ๋ํ ์ํธ ์์ฉ ๋
ผ๋ฆฌ
/// </summary>
public partial class App : Application
{
//OnStartup ์ถ๊ฐ
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
NNViewRegistrar.RegisterSplat();
}
}
}
ํ๋ก์ ํธ์ MainWindow.xaml ํ์ผ์ ์๋์ ํ์ํ ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
<Window x:Class="ExamNodeUI.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:ExamNodeUI"
xmlns:nodenetwork="clr-namespace:NodeNetwork.Views;assembly=NodeNetwork" //์ถ๊ฐ
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<nodenetwork:NetworkView x:Name="networkView" /> //์ถ๊ฐ
</Grid>
</Window>
NetworkView๋ฅผ ์ถ๊ฐํ๋ฉด MainWindow๊ฐ ์๋์ ๊ฐ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค.
์ด๋ฒ์๋ ํ๋ก์ ํธ์ MainWindow.xaml.cs ํ์ผ์์ ์๋์ ๋ค์์คํ์ด์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค.
using NodeNetwork.ViewModels;
using DynamicData;
๊ทธ๋ฆฌ๊ณ MainWindow() ํจ์์ ์๋์ ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
public MainWindow()
{
InitializeComponent();
//Create a new viewmodel for the NetworkView
var network = new NetworkViewModel();
//Create the node for the first node, set its name and add it to the network.
var node1 = new NodeViewModel();
node1.Name = "Node 1";
network.Nodes.Add(node1);
//Create the viewmodel for the input on the first node, set its name and add it to the node.
var node1Input = new NodeInputViewModel();
node1Input.Name = "Node 1 input";
node1.Inputs.Add(node1Input);
//Create the second node viewmodel, set its name, add it to the network and add an output in a similar fashion.
var node2 = new NodeViewModel();
node2.Name = "Node 2";
network.Nodes.Add(node2);
var node2Output = new NodeOutputViewModel();
node2Output.Name = "Node 2 output";
node2.Outputs.Add(node2Output);
//Assign the viewmodel to the view.
networkView.ViewModel = network;
}
์ด์ ๋น๋ํ๊ณ ์คํํ๋ฉด ์๋์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์์ฃผ ๊ฐ๋จํ ์์ ์์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ์๋ ์ฒจ๋ถ ํ์ผ์ ์ฐธ๊ณ ํ์ธ์. ์ฒจ๋ถ ํ์ผ ์ฉ๋ ๋ฌธ์ ๋ก ํจํค์ง ํ์ผ์ ์ ๊ฑฐํ์ต๋๋ค.
'Programming > .Net' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[.Net] C# ๋ ๋๋ง์ธ REST API ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ(์์ ํฌํจ)
[.Net] C# ๋ ๋๋ง์ธ REST API ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ(์์ ํฌํจ)
2022.02.10 -
[.Net] C# WinForm์์ ScottPlot์ผ๋ก ๊ทธ๋ํ, ์ฐจํธ ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ
[.Net] C# WinForm์์ ScottPlot์ผ๋ก ๊ทธ๋ํ, ์ฐจํธ ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ
2022.01.09 -
[.Net] WPF NodeNetwork ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ํน์ง ์์๋ณด๊ธฐ
[.Net] WPF NodeNetwork ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ํน์ง ์์๋ณด๊ธฐ
2021.12.18 -
[.Net] Node Editor UI ํ๋ ์์ํฌ ์๊ฐ - NodeNetwork
[.Net] Node Editor UI ํ๋ ์์ํฌ ์๊ฐ - NodeNetwork
2021.11.28