Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

UserControl transitando informações entre dois projetos dentro da mesma solução

Boa Noite, estou com uma duvida,

Tenho dois projetos dentro de uma solução, dentro do Projeto A existe a referencia do projeto B, sempre que preciso simplesmente uso os metodos do projeto B, agora preciso fazer algo inverso, preciso que ao chamar um metodo especifico do projeto B este exiba uma mensagem(string) ao projeto A...

Para isso Criei um usercontrol dentro do Projeto B e nele tem um Label, que fiz um DataBind. Se eu invocar o metodo que troca o texto do Label de dentro do projeto B esse não se aplica a visualizaçao do Projeto A, existe alguma forma de re-renderizar uma parte do wpf ou algum componente especifico que faça isso?

Projeto B DisplayMessageUserControl.xaml

<UserControl x:Class="ProjetoB.DisplayMessageUserControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008">
    <Grid>
        <Label Content="{Binding Message}" FontSize="10"/>
    </Grid>        
</UserControl>

Projeto B: DisplayMessageUserControl.xaml.cs

    public partial class DisplayMessageUserControl : UserControl
    {
        private string _message;
        public string Message
        {
            get
            {
                return _message;
            }

            set
            {
                _message = value;
            }
        }

        public DisplayMessageUserControl()
        {            
            InitializeComponent();
            DataContext = this;
            Message = "Inicializando...";
        }

    }

Projeto A: ShowMessage.xaml

<Page x:Class="ProjetoA.ShowMessage"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:local="clr-namespace:ProjetoB;assembly=ProjetoB"
      mc:Ignorable="d" 
      d:DesignHeight="450" d:DesignWidth="800"
      Title="ShowMessage">

    <Grid>
    <local:DisplayMessageUserControl x:Name="Dmu" />
    </Grid>
</Page>
2 respostas
solução!

Comunicação entre projetos não é o ideal. Se os dois projetos se comunicam ou você coloca eles no mesmo projeto ou usa um banco de dados para troca de informações entre eles. Ou então uma outra solução seria criar uma biblioteca DLL para o uso de funções em comum.

Obrigado!