/ / como obter o valor texbox de vista para viewmodel no mvvm silverlight? - silverlight, mvvm, prisma

como obter o valor do texbox da view para viewmodel no mvvm do silverlight? - silverlight, mvvm, prisma

No meu projeto eu estou usando o Silverlight5 com padrão MVVM. Eu tenho o seguinte:

View        : Manager.xaml
Code-Behind : Manager.Xaml.cs
ViewModel   : ManagerViewModel.cs

na minha opinião eu tenho uma caixa de texto e eu tenho atribuído o valor é 10.

Manager.xaml

<TextBox Name="gid" Visibility="Collapsed" />

Manager.xaml.cs

gid.Text=(((TextBlock)DG.Columns[5].GetCellContent(DG.SelectedItem)).Text);
ManageViewModel vm = DataContext as ManageViewModel;
if (vm != null)
{
vm.EditCommand.Execute();
}

ManagerViewModel.cs:

private DelegateCommand _editCommand;
public DelegateCommand EditCommand
{
get
{

if (_editCommand == null)
_editCommand = new DelegateCommand(() =>
{
**//Here i need to get the value that is assigned in the textbox.**
ANCViewModel.Show();
});
return _editCommand;
}
}

Aqui a minha pergunta é como eu tenho que obter o valor que é atribuído na caixa de texto de vista para ViewModel. Qualquer ajuda..?

Respostas:

0 para resposta № 1

Pelo que entendi do seu código.

ManageViewModel vm = DataContext as ManageViewModel;

seu DataContext é ManageViewModel, então você deve usar este contexto ...

< TextBox Name="gid" Text={Binding MyTextPropertyInMyViewModel}
Visibility="Collapsed" why ? />

Seu comando delegate também está em ViewModel para que você possa usar MyTextPropertyInMyViewModel em seu modelo de visualização facilmente.

Se você usar o MVVM, isso significa que você usa um DataContext (ou pode ser um recurso). Você deve usá-lo para origens de elementos de interface do usuário e também para Commanding.

Dessa forma, você separa os negócios e a interface do usuário. ViewModel "s são nossos objetos de negócios, e você pode pensar que os Model" s são nossas entidades.

Então você deve usar ligações sobre seu DataContextpara seus DataGrid, TextBlock e outros elementos visuais e gerencie seu negócio em seu viewModel. Desta forma você pode usar seu modelo de visão em outro lugar. Por exemplo, no seu aplicativo para dispositivos móveis.