MVVM 패턴을 이용해서 View의 TextBox 등에 바인딩은 간단하게 <TextBox Text="{Binding mystring}"/> 이렇게 하면 된다. RichTextBox 도 마찬가지 일것 같지만, 해보면 안된다. 먼저 RichTextBox가 Content를 표현하는 구조를 알아야 되는데, 그건, 다음에 정리하고, 바인딩 하는 방법은 아래와 같다. 먼저 ViewModel 을 DependencyObject 를 상속고 DependencyProperty 를 정의해준다. public class MyViewModel : DependencyObject { public FlowDocument Document { get { return (FlowDocument)GetValue(DocumentProperty); } set { SetValue(DocumentProperty, value); } } public static readonly DependencyProperty DocumentProperty = DependencyProperty.Register("Document", typeof(FlowDocument), typeof(MyViewModel), new PropertyMetadata(OnDocumentChanged)); public void OnDocumentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { } } 그 다음 View 의 code-behind 의 생성자에 InitializeComponent(); Binding b = new Binding("Document"); b.Source = richTextBox; b.Mode = BindingMode.OneWay; BindingOperations.SetB...
훈스닷넷에 답글달고 정리 차원에서 남겨둔다. C#에서는 C에서 처럼 포인터를 사용할수가 있다. 빌드옵션에서 안전하지 않은 코드 check 해주고 다음과 같은 방법으로 한다. static void Main(string[] args) { foo(); } unsafe static void foo() { Int64 aa = 123456789; Int64 bb = 123222; IntPtr pt = new IntPtr(&aa); IntPtr pt2 = new IntPtr(&bb); Console.WriteLine(pt.ToString("x")); Console.WriteLine(pt2.ToString("x")); Int32 a = 1234231; Int32 b = 154324; IntPtr pt3 = new IntPtr(...
WPF 기초가 부족해 삽질 한참 하다가 별것 아닌 방법으로 해결했다. 처음엔 Canvas위에 그릴려고 Canvas객체를 가져왔는데 WinForm 처럼 Graphics를 가져올수 없었다. 구글링해보면 제목은 WPF이고 Graphics를 가져와 그걸로 그리는 예제가 있어서 쉽게 끝날줄 알았는데, 한참 헤매었다. 답은 간단하다. 캔버스에서 이미지 다음에 객체를 추가하면 끝난다.(허무했다 ㅠ ) <Canvas Name="myCanvas"> <Image ImageSource="....."/> <Line X1="10" Y1="10" X2="100" Y2="200" /> </Canvas> 동적으로 추가하는 코드도 마찬가지다 myCanvas.Children.Add( new Line{X1=10,Y1=10,X2=100,Y2=200} ); ViewModel로 바인딩해서 많은 선을 그렸었는데 역시 마찬가지로 이미지다음에 Template을 추가해 바인딩 해놓으면 쉽게 된다.
댓글
댓글 쓰기