Привязка данных в WPF - PullRequest
       4

Привязка данных в WPF

0 голосов
/ 02 декабря 2010

У меня проблема с привязкой данных в текстовом блоке.

Что я хочу сделать, так это то, что всякий раз, когда возникает исключение в любом классе, который я хочу отображать в текстовом блоке, но по какой-то причине это не вызывает споров.

Main.xaml

<Window x:Class="TestingWPF.Main"

      <Window.Resources>
        <ObjectDataProvider x:Key="showErr" ObjectType="{x:Type   local:ErrorLog}"         MethodName="GetError"/>
            </Window.Resources>
       <Frame  Name="frame1" Width="620"/>
       <Button  Name="button1"  Click="button1_Click">
       <TextBlock Name="txtBlock6" Text="{Binding Source={StaticResource showErr}}"/>
    </Window>

Main.xaml.cs

    namespace TestingWPF
    {
       public partial class Main : Window
       {
          private void button1_Click(object sender, RoutedEventArgs e)
          {
             frame1.Source =new Uri("/Page1.xaml", UriKind.Relative);     
          }
       }

      public class ErrorLog 
      {
         private string errorInfo { get; set; }

        public string GetError(string errorMessage)
        {
           return errorInfo =errorMessage;
        }
      }
   }

Page1.xaml

<Page x:Class="TestingWPF.Page1"
<Button  Name="button1"  Click="button1_Click">
<Button  Name="button2"  Click="button2_Click">
</Page>

Page1.xaml.cs

namespace TestingWPF
{
    public partial class Page1 : Page
     {
        ErrorLog errorLog = new ErrorLog ();

        private void button1_Click(object sender, RoutedEventArgs e)
        {
             someMethod1();
        }

        private void someMethod1()
        {
          try
          {
          }
          catch(Expection e)
          {
              errorLog.GetError(e.toString());// This is not dispalying 
          }
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
             someMethod2();
        }

        private void someMethod2()
        {
            Class2 class2 = new Class2();
            class2.foo();  
        }
     }
}

Class2.cs

namespace TestingWPF
{
    class Class2
    {
        ErrorLog errorLog = new ErrorLog ();

        public void foo()
       {
         try
         {
          }
          catch(Expection e)
          {
              errorLog.GetError(e.toString());// This is not dispalying 
          }

       }
    }
}

1 Ответ

0 голосов
/ 02 декабря 2010

Где вы на самом деле устанавливаете ошибку? Я вижу только метод GetError, который возвращает только то же сообщение, которое вы ему передали?Я бы либо добавил метод GetError без параметров, либо привязал бы к фактическому свойству объекта, который вы создаете, то есть создайте общедоступное свойство

Error {get;set;}

в вашем классе ErrorLog и установите его в вашем методе SetErrorт.е.

 public string SetError(string errorMessage)
 {
    Error = errorMessage;
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...