Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal,
Eu tenho uma array de string, e estou usando o ObservableCollection<string>, entao na view quando o usuario entra com algum valor nos textbox gerado automaticamente nao dispara o PropertyChanged, ja tentei varias coisas, ja tentei usar o CollectionChanged mas como eh string dah pau. Alguem ja passou por isso
Segue o XAML:
<Grid Grid.Column="0" >
<ItemsControl ItemsSource="{Binding Processes[0].ActualDivisible, UpdateSourceTrigger=PropertyChanged}" ap:FocusProperty.GotFocus="{Binding Processes[0].GotFocusCommand}"
ap:FocusProperty.LostFocus="{Binding Processes[0].LostFocusCommand}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox TabIndex="1" Text="{Binding Path=., UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" ap:FocusProperty.GotFocus="{Binding Processes[0].GotFocusCommand}" ap:FocusProperty.LostFocus="{Binding Processes[0].LostFocusCommand}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</Grid>
E na minha classe declarei assim minha propriedade
private ObservableCollection<string> _actualDivisible;
public ObservableCollection<string> ActualDivisible
{
get
{
if(_actualDivisible == null)
{
_actualDivisible = new ObservableCollection<string>() { "" };
}
return _actualDivisible;
}
set
{
if (_actualDivisible != value)
{
_actualDivisible = value;
RaisePropertyChanged();
}
}
}
Alguem ja teve esse problema?Como assim com CollectionChanged deu pau? Eu utilizo sem problemas, mas em WinForms.
Para uma ObservableCollection.aspx), o evento mais apropriado se chama CollectionChanged e não PropertyChanged (apesar de ObservableCollection possuir também o evento PropertyChanged, mas é outra história).
PropertyChanged é o evento definido/gerado pela interface INotifyPropertyChanged. ObservableCollection implementa INotifyPropertyChanged, mas não é disparado quando a colleção é alterada.
No caso, para ObservableCollection fica assim:
>
Citar
CollectionChanged - Occurs when an item is added, removed, changed, moved, or the entire list is refreshed.
PropertyChanged - Occurs when a property value changes.
Faz tempo que não trabalho com wpf, mas lembro que tinha outra forma de notificar quando a propriedade mudava. Da uma olhada: https://stackoverflow.com/questions/15396786/listbox-item-not-updated-when-property-changed
O codigo esta dessa forma:
public string Name
{