.net
  • wpf
  • xaml
  • 2012-08-07 2 views 1 likes 
    1

    click 이벤트를 datatemplate의 단추에 추가하려고합니다. 내가 버튼으로 클릭하면DataTemplate의 XamlReader 동적 이벤트

    var temp = (DataTemplate)XamlReader.Load(
            new MemoryStream(Encoding.Default.GetBytes(
             @"<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'><Button><TextBlock Text='1' TextAlignment='Center'/></Button></DataTemplate>" 
            ))); 
    var button = temp.LoadContent() as Button; 
    button.Click += (sender, args) => 
            { 
             MessageBox.Show("123"); 
            }; 
    return temp; 
    

    그래서, 아무 일도 발생하지 : 몇 가지 코드를 가지고 . 내가 무엇을 놓치고 있습니까?

    답변

    0

    this 질문을 보면 꽤 유사합니다. 필요한 것을 얻으려면 Framework Element Factory를 다음과 같이 사용할 수 있습니다.

    private DataTemplate CreateTemplate() 
        { 
         FrameworkElementFactory fef = new FrameworkElementFactory(typeof(Button));//new FrameworkElementFactory("<Button Name='ButtonName'><TextBlock Text='1' TextAlignment='Center'/></Button>"); 
         fef.AddHandler(Button.ClickEvent, new RoutedEventHandler(b_Click)); 
         fef.SetValue(Button.ContentProperty, "1"); 
    
         return new DataTemplate() { VisualTree = fef }; 
        } 
    
        private void b_Click(object sender, RoutedEventArgs e) 
        { 
         MessageBox.Show("123"); 
        } 
    
    관련 문제