Мне не ясно, как подключить объект, который отражает контекст привязки ListViewItem.Реализация INotifyPropertyChanged с помощью POCO
XAML:
<ListView x:Name="AssignedMaterialsList" Grid.Row="7" Grid.ColumnSpan="2" ItemsSource="{Binding AssignedMaterials}" SelectedItem="{Binding SelectedAssignedMaterial}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Text="{Binding Quantity, StringFormat='({0:F0})'}" />
<Label Grid.Row="0" Grid.Column="1" Text="{Binding Name}" />
<Label Grid.Row="0" Grid.Column="2" Text="{Binding ., Converter={StaticResource MaterialToCostConverter}, StringFormat='{}{0:c}'}}" />
<Label Grid.Row="1" Grid.Column="0" Text="{Binding Description}" />
</Grid>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
ПОКО:
public class Material : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
decimal _quantity = 0.0m;
public decimal Quantity
{
get { return _quantity; }
set
{
if (_quantity != value)
{
_quantity = value;
OnPropertyChanged();
}
}
}
void OnPropertyChanged([CallerMemberName] string propertyName = "") =>
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
Как событие PropertyChanged инициализируются? Следовательно, просто наличие класса реализует INotifyPropertyChanged недостаточно. Событие PropertyChanged обычно получает инициализацию при связывании модели представления с представлением, когда представление получает экземпляр.
В моем случае, хотя мне нужно, чтобы этот объект обновлялся при изменении любого из его свойств. Однако он не связан с какой-либо системой привязки.
bleh, эти определения метода выражения уродливы :) – Liero
Связано ли ваше представление с вашим POCO или с VM? Если это VM, какова связь между VM и POCO? Я думаю, вам нужно показать больше кода, чтобы мы поняли, как настраивается привязка. – Jason
Мой вид связан непосредственно с виртуальной машиной. У VM есть наблюдаемая коллекция poco, в которой мне нужно мое представление, чтобы отражать обновления на основе изменений стоимости собственности в моем poco. –