我有這樣一個ListView:刷新ListView項改變
<ListView Grid.Row="1" x:Name="itemsListView"
BorderBrush="White" HorizontalAlignment="Stretch"
ItemsSource="{Binding Path=Items}"
SelectedItem="{Binding Path=ActualItem}">
<ListView.View>
<GridView>
<GridViewColumn Header="{x:Static p:Resources.STATUS}">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<local:StatusElement State="{Binding Path=Status,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"
Height="20"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="{x:Static p:Resources.NAME}"
DisplayMemberBinding="{Binding Path=Name,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"/>
</GridView>
</ListView.View>
</ListView>
它結合了許多領域命名Items
項目的列表。線程解析項目並在完成時更新字段。字段更新時,我打電話給方法OnPropertyChanged
。它適用於除使用我的UserControl local:StatusElement
之外的所有字段。我試圖顯示我的狀態像NAME,它刷新正確,但與local:StatusElement
沒有刷新。 StatusElement.State的get/set斷點永遠不會到達。
我的用戶:
<UserControl ...
x:Name="mainControl">
<Grid Name="LabelGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Name="MyImage"
Source="{Binding Source, Source={StaticResource MyImage}}"
Width="{Binding Height, ElementName=mainControl}"
Height="{Binding Height, ElementName=mainControl}"/>
<Label Grid.Column="1" Name="statusLabel"/>
</Grid>
</UserControl>
和:
爲什麼我statusLabel的內容不會刷新?
請注意,UpdateSourceTrigger = PropertyChanged在單向綁定中沒有效果(因爲沒有從目標到源的數據流)。除此之外,顯式設置'Mode = OneWay'通常是多餘的,因爲這已經是大多數依賴屬性的默認值。 – Clemens