Приложение Xamarin.Forms UWP Xamarin Editor View не будет отображать содержимое - PullRequest
0 голосов
/ 04 февраля 2019

Я вижу проблему с проводным соединением в приложении Xamarin.Forms.Это кроссплатформенное приложение Xamarin, использующее .NETStandard 2, поэтому код не зависит от платформы, а является частью библиотеки .NETStandard (или того, что называлось до PCL).

Я устанавливаю TCPIP-соединение с сервером и получаю некоторые данные отсервер успешно на всех трех платформах Android, iOS и UWP.

Это все хорошо и работает.

Проблема, которую я вижу, немного глупа.Я Xamarin редактор контроля, чтобы показать вывод с сервера.Элемент управления «Редактор» должен расширяться для отображения всего нового текста, добавленного в него.И это на Android или iOS, но не на UWP.Более того, в UWP текст не отображается из полученного сообщения, но сообщение получено успешно, и я могу увидеть его в режиме отладки, поместив указатель мыши на переменную msg ниже или на свойство editorResponse.Text

private void ReadResponse()
{
    if (serverStream.CanRead)
    {
        byte[] readBuffer = new byte[1024];
        StringBuilder receivedMessage = new StringBuilder();
        int readSoFar = 0;

        do
        {
            //serverSteam is an instance of System.Net.Sockets.NetworkStream
            readSoFar = serverStream.Read(readBuffer, 0, readBuffer.Length);
            receivedMessage.AppendFormat("{0}", Encoding.ASCII.GetString(readBuffer, 0, readSoFar));
        } 
        while (serverStream.DataAvailable);

        string msg = receivedMessage.ToString().Trim();

        //PROBLEM IS HERE AND ON UWP ONLY!  BOTH IOS AND ANDROID ARE FINE
        //hower over msg or editorResponse.Text
        //and I see both have correct received 
        //information from server but editorResponse Editor 
        //control wont show it
        //Hardcoding dummy string will show correct however
        editorResponse.Text = msg; // this is Xamarin Editor view

        //If I put message into a Label control, it shows just fine
        lblResponse.Text = msg;  // this works!
    }
    else
    {
        DisplayAlert("Error", "Cannot read from NetworkStream", "Close");
    }
}

Вот как мой редактор установлен в XAML

    <Editor x:Name="editorResponse" 
        Text="Server response will show here"
        AutoSize="TextChanges"
        IsSpellCheckEnabled="False"
        HorizontalOptions="Fill"
        VerticalOptions="Fill">
    </Editor>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...