0

我的 WPF 应用程序中有一个自定义TreeListView(基于 a TreeView)。ItemSource绑定到一个ObservableCollection<Node>whereNode是一个基于 a 的自定义类,因此TreeListViewItem是 a TreeItem。它包含应显示的值。

加载新节点时将列绑定到Node工作中的值(我实现了延迟加载,ItemSource 经常更改(Node添加新的),UI 也是如此),但是当节点中的值更改时,值在用户界面没有改变。

我创建了一个DataTemplate触发器来测试行为:

<DataTemplate x:Key="CellTemplate_Speicherplatz">
    <TextBlock Name="tbSpeicherplatz" TextAlignment="Right">
        <TextBlock.Style>
            <Style TargetType="TextBlock">
                <Setter Property="Text" Value="{Binding RecSpeicherplatz, RelativeSource={RelativeSource AncestorType={x:Type k:Node}}}"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding DataContext.IsProcessing, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" Value="False">
                        <Setter Property="Text" Value="{Binding RecSpeicherplatz, RelativeSource={RelativeSource AncestorType={x:Type k:Node}}}"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding DataContext.IsProcessing, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" Value="True">
                        <Setter Property="Text" Value="..."/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </TextBlock.Style>
    </TextBlock>
</DataTemplate>

这会导致以下行为:虽然IsProcessing为真,但 UI 中的文本为“...”。当IsProcessing更改为 false 时,RecSpeicherplatz即使变量已在Node.

有人可以解释为什么它会这样以及如何解决这个问题吗?

4

1 回答 1

0

Node 类是否实现了 INotifyPropertyChanged 接口?当 RecSpeicherplatz 属性发生变化时,您会引发 PropertyChanged 事件吗?

于 2015-07-29T10:38:37.523 回答