Ram349 Ответов: 0

Как привязать данные в сетку данных из служб обратного вызова WCF с помощью WPF


Привет,
я пытаюсь связать данные в сетку данных из служб обратного вызова WCF.но я не могу прочитать данные на стороне клиента.но я получаю данные в метод реализации службы обратного вызова WCF.

я создал службы wcf, как показано ниже

[ServiceContract(CallbackContract = typeof(ICalcServiceCallback))]
    public interface ICalcService
    {
        [OperationContract(IsOneWay = true)]
        void Calculatedatafrompath(string path, double[] returnPeriods);

}

я создал интерфейс обратного вызова, как показано ниже
public interface ICalcServiceCallback
   {

       [OperationContract(IsOneWay = true)]
       void SendResult(CalcUpdate CalcUpdate);
   }

я реализовал метод ICalcService, как показано ниже
public class CalcService:ICalcService
    {
        
        public void Calculatedatafrompath(string path, double[] returnPeriods)
        {
           //i written my code here

       }<pre>

in wpf application i have  created one Wpf window in that window.xaml.cs i have written code below 
<pre> public partial class Data : Page
    {
        
        private static PMLCalcService.PMLCalcServiceClient Calc;
        private static PMLCalcService.IPMLCalcServiceCallback Pml_callback;
        DuplexServiceCallBackHandler dd = new DuplexServiceCallBackHandler();
        public Data()
        {
            InitializeComponent();
        }

        private void PropertiesTabCtrl_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                if (PropertiesTabCtrl.SelectedItem == tabname)
                {
                    InstanceContext context = new InstanceContext(new DuplexServiceCallBackHandler());
                    Calc = new CalcService.CalcServiceClient(context, "WSDualHttpBinding_ICalcService");
                    Calc.Calculatedatafrompath(path, returnPeriods);
                    
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }
    }
   
    public class DuplexServiceCallBackHandler:PMLCalcService.IPMLCalcServiceCallback
    {
        
        void ICalcServiceCallback.SendResult(CalcUpdate CalcUpdate)
        {

            datainfo = CalcUpdate.data;
            if (datainfo != null)
                GridData(datainfo );
                
        }
        public DataTable GridData(double[] datainfo )
        {
         double[] d= datainfo; 
           
            //if (pp != null)
            //{
            dt.Columns.Add("ReturnPeriod", typeof(double));
            dt.Columns.Add("PML", typeof(double));
            for (int d = 0; d < returnPeriods.Count(); d++)
            {
                DataRow dr = dt_PML.NewRow();
                dr[0] = returnPeriods[d];
                dr[1] = pmls[d];
                dt.Rows.Add(dr);
                //}

            }
            
            return dt;//i am getting data here
        }
    }

я реализовал класс DuplexServiceCallBackHandler в одном XAML.КС,вот я получаю данные в файле griddata способ, но я не могу прочитать данные в PropertiesTabCtrl_SelectionChanged событие.

кто-нибудь из вас не мог бы поделиться со мной своими решениями.

Что я уже пробовал:

с последних двух дней я пытаюсь привязать данные к сетке данных wpf,я получаю данные в Wcfcallbackservice, но я не могу читать данные на стороне клиента.
последние два дня я занимаюсь google it и перепробовал так много решений, но это не сработало.

0 Ответов