none
MultiBinding de um TextBox RRS feed

  • Pergunta

  • Olá,

    Tenho um TextBox com um Binding para gravar os dados no Banco.

    <TextBox Height="22" TextChanged="teste" VerticalAlignment="Top" Name="TextBoxNome"  HorizontalAlignment="Left" Width="187" Text="{Binding Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">

    Eu criei um Observable collection que recebe as alterações de todos os campos e depois faço um SubmitChanges no Linq To Sql. Agora preciso fazer a validação deste campo também, achei um exemplo na net do IDataErrorInfo, e consegui também fazer funcionar, porém ele usa o mesmo binding com valores diferentes.

     <TextBox Height="22" TextChanged="teste" VerticalAlignment="Top" Margin="73,17,0,0" MaxLength="50" Name="TextBoxNome" TabIndex="1"  HorizontalAlignment="Left" Width="187">
                   
           <TextBox.Text>
                                             
                 <Binding ElementName="UsersWindow" Path="EmpName" UpdateSourceTrigger="PropertyChanged" ValidatesOnDataErrors="True">
                        <Binding.ValidationRules>
                              <ExceptionValidationRule/>
                         </Binding.ValidationRules>
                  </Binding>
                                            
             </TextBox.Text> 
    </TextBox> 

    Estou tentando usar o MultiBinding para usar os dois Bindings de uma vez. Já tentei de diversas formas, procurei na internet, mas ainda não consegui. Será que alguém teria uma idéia pra me ajudar? E gostaria de saber se o MultiBinding é apropriado para isso mesmo, pois estou achando que não.

    Desde já agradeço!

    terça-feira, 23 de fevereiro de 2010 17:58

Respostas

  • Me parece que o que você quer não é o MultiBinding e sim mostrar os erros de validação. Para isso, basta colocar algo como:

    <TextBox Height="22" TextChanged="teste" VerticalAlignment="Top" Name="TextBoxNome"  HorizontalAlignment="Left" Width="187" Text="{Binding Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}">

    E fazer a validação com o IDataErrorInfo - sua classe deve implementar a interface IDataErrorInfo e setar os erros. Isto é tudo.

    Bruno
    MVP Client Development - http://msmvps.com/blogs/bsonnino
    • Marcado como Resposta Thiago.Policarpo quarta-feira, 24 de fevereiro de 2010 19:31
    quarta-feira, 24 de fevereiro de 2010 10:47