Usuário com melhor resposta
Porque o Binging usando DependencyProperty não funciona? (Não uso o Code Behind)

Pergunta
-
Sou novo em WPF e tenho estas classes em um aplicativo de exemplo que estou desenvolvendo, mas não consigo fazer o binding num objeto treeview funcionar. Estou usando a propriedade isEnabled do TreeviewItem via xaml.
A classe MenuViewModel, onde tenho a dependencyproperty
public class MenuViewModel : DependencyObject {
#region dependencyProperty public static readonly DependencyProperty TreeAllCustomersProperty =
DependencyProperty.Register("TreeAllCustomers", typeof(Boolean), typeof(MenuViewModel), null); public static readonly DependencyProperty TreeAllEmployeesProperty =
DependencyProperty.Register("TreeAllEmpliers", typeof(Boolean),typeof(MenuViewModel));
#endregion
#region propriedades
public Boolean TreeAllCustomers
{
get { return (Boolean)base.GetValue(MenuViewModel.TreeAllCustomersProperty); }
set { base.SetValue(MenuViewModel.TreeAllCustomersProperty, value); }
}
public Boolean TreeAllEmployees
{
get { return (Boolean)base.GetValue(MenuViewModel.TreeAllEmployeesProperty); }
set { base.SetValue(MenuViewModel.TreeAllEmployeesProperty, value); }
}
#endregion}
Meu Xaml esta assim:
<TreeView Width="auto"> <TreeViewItem Header="Gestão de Documentos" IsExpanded="True"> <TreeViewItem Name="TreeAllCustomers" Header="Todos os Clientes" IsEnabled="{Binding TreeAllCustomers}" ItemsSource="{Binding CommandAllCustomers}" ItemTemplate="{StaticResource CommandsTemplate}"/> <TreeViewItem Name="TreeAllEmployees" Header="Todos os Empregados" IsEnabled="{Binding Path=TreeAllEmployees}" ItemsSource="{Binding CommandAllEmployees}" ItemTemplate="{StaticResource CommandsTemplate}" /> </TreeViewItem> </TreeView>
Simplesmente ao executar o aplicativo, o treeviewItem não é atualizado de acordo com o binding das propriedades. Parece que falta algo que ainda não percebi. O que será que estou perdendo?
Agradeço a atenção.
Respostas
-
Olá Fabio,
Ao que parece está faltando o Item-source:
treeView.ItemsSource = ..yourFolderList..
Att,Giovani Cruzara – Microsoft Contingent Staff
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
Msdn Community Support
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.- Marcado como Resposta Alysson QueirozModerator quinta-feira, 29 de agosto de 2013 14:42
-
Olá,
Andei dando uma pesquisada e encontrei dois links que podem te auxiliar:
Esse:
http://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewMode
E esse:
http://msdn.microsoft.com/en-us/library/dd759035(v=vs.95).aspx
Att,
Giovani Cruzara – Microsoft Contingent Staff
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
Msdn Community Support
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.- Marcado como Resposta Alysson QueirozModerator quinta-feira, 29 de agosto de 2013 14:42
Todas as Respostas
-
Olá Fabio,
Ao que parece está faltando o Item-source:
treeView.ItemsSource = ..yourFolderList..
Att,Giovani Cruzara – Microsoft Contingent Staff
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
Msdn Community Support
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.- Marcado como Resposta Alysson QueirozModerator quinta-feira, 29 de agosto de 2013 14:42
-
Obrigado pela ajuda Giovani,
Bom, o TreeviewItem tem um binding no ItemsSource para uma lista de comandos CommandAllCustomers.
<TreeViewItem Name="TreeAllCustomers" Header="Todos os Clientes" IsEnabled="{Binding TreeAllCustomers}" ItemsSource="{Binding CommandAllCustomers}" ItemTemplate="{StaticResource CommandsTemplate}"/>
O treeview também precisaria? Como o binding abaixo:
<TreeView ItemsSource="{Binding}" Width="auto"> <TreeViewItem Header="Gestão de Documentos" IsExpanded="True"> <TreeViewItem Name="CliTree" Header="Clientes" > <TreeViewItem Name="TreeAllCustomers" Header="Todos os Clientes" IsEnabled="{Binding TreeAllCustomers, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding CommandAllCustomers}" ItemTemplate="{StaticResource CommandsTemplate}"/> <TreeViewItem Name="TreeCustomers" Header="Novo Cliente" IsEnabled="{Binding TreeCustomer, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding CommandCustomer}" ItemTemplate="{StaticResource CommandsTemplate}" /> </TreeViewItem>
- Editado Fábio Siqueira quarta-feira, 28 de agosto de 2013 23:23
-
Olá,
Andei dando uma pesquisada e encontrei dois links que podem te auxiliar:
Esse:
http://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewMode
E esse:
http://msdn.microsoft.com/en-us/library/dd759035(v=vs.95).aspx
Att,
Giovani Cruzara – Microsoft Contingent Staff
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
Msdn Community Support
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.- Marcado como Resposta Alysson QueirozModerator quinta-feira, 29 de agosto de 2013 14:42
-