C# 扩展WPF工具包-进度指示器,绑定不';行不通

C# 扩展WPF工具包-进度指示器,绑定不';行不通,c#,wpf,binding,wpftoolkit,busyindicator,C#,Wpf,Binding,Wpftoolkit,Busyindicator,我正试图绑定一个可观察到的 public class ProgressInfo : BindableBase, IProgress<Tuple<string, int>> { public ProgressInfo() { Message = "start"; ProgressBarValue = 50; } private string _message; public string Messag

我正试图绑定一个可观察到的

public class ProgressInfo : BindableBase, IProgress<Tuple<string, int>>
{
    public ProgressInfo()
    {
        Message = "start";
        ProgressBarValue = 50;
    }

    private string _message;
    public string Message
    {
        get { return _message; }
        set { _message = value; OnPropertyChanged(() => Message); }
    }

    private int _progressBarValue;
    public int ProgressBarValue
    {
        get { return _progressBarValue; }
        set { _progressBarValue = value; OnPropertyChanged(() => ProgressBarValue); }
    }

    public void Report(Tuple<string, int> value)
    {
        this.Message = value.Item1;
        this.ProgressBarValue = value.Item2;
    }

}
public class ProgressInfo:BindableBase,IProgress
{
公共进度信息()
{
Message=“开始”;
ProgressBarValue=50;
}
私有字符串消息;
公共字符串消息
{
获取{return\u message;}
设置{u message=value;OnPropertyChanged(()=>message);}
}
私有整数值;
公共价值
{
获取{return\u progressBarValue;}
设置{u progressBarValue=value;OnPropertyChanged(()=>progressBarValue);}
}
公共无效报告(元组值)
{
this.Message=value.Item1;
this.ProgressBarValue=value.Item2;
}
}
到具有自定义内容的WPF Toolkit BusyIndicator

  <xctk:BusyIndicator DisplayAfter="0" IsBusy="{Binding IsBusy, Mode=OneWay}"  >
    <xctk:BusyIndicator.BusyContentTemplate>
        <DataTemplate>
            <StackPanel Margin="4">
                <TextBlock Text="{x:Static lang:Resources.TRWAIMPORT}" FontWeight="Bold" HorizontalAlignment="Center"/>
                <ItemsControl ItemsSource="{Binding  ProgressInfos, UpdateSourceTrigger=PropertyChanged}" >
                <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Margin="4">
                    <TextBlock Text="{Binding ProgressInfo.Message, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay }"/>
                    <ProgressBar Value="{Binding Path=ProgressInfo.ProgressBarValue, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Height="15"/>
                            </StackPanel>
                        </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
            </StackPanel>

        </DataTemplate>
    </xctk:BusyIndicator.BusyContentTemplate>
    <xctk:BusyIndicator.ProgressBarStyle>
        <Style TargetType="ProgressBar">
            <Setter Property="Visibility" Value="Collapsed"/>
        </Style>
    </xctk:BusyIndicator.ProgressBarStyle>

此外,我还将对象从ObervableCollection传递到我的任务,以便它们通过报告方法更改其属性

但由于某些原因,总线指示器从未使用新值更新,并且可观察集合似乎总是空的(项控件不生成任何项)


我做错了什么?这种方法适用于任何其他控件,但BusyIndicator似乎不太正确

我不熟悉WPF工具包,但是:为什么一个BusyIndicator需要收集(ItemsSource)项?我希望在这里绑定到一个ProgressInfo对象。您是否看到ProgressInfo对象的初始值,但没有实现,或者您没有得到任何结果?busyIndicator本身只需要IsBusy属性。我更改了它的内部模板,使其包含ItemsControl,它需要一个对象集合,并为集合中的每个对象生成数据模板。无论如何,我尝试更改它,并仅将一个ProgressInfo对象绑定到另一个BusyIndicator.BusyContentTemplate。它仍然无法绑定。即使我用初始值填充对象,它仍然不会显示任何内容。@SebOlens hi。你能分享工作代码吗?@user1088259嗨。我希望我能,但那是两年前的事了,代码早已不见了:)我不熟悉WPF工具包,但是:为什么一个BusyIndicator需要收集(ItemsSource)项?我希望在这里绑定到一个ProgressInfo对象。您是否看到ProgressInfo对象的初始值,但没有实现,或者您没有得到任何结果?busyIndicator本身只需要IsBusy属性。我更改了它的内部模板,使其包含ItemsControl,它需要一个对象集合,并为集合中的每个对象生成数据模板。无论如何,我尝试更改它,并仅将一个ProgressInfo对象绑定到另一个BusyIndicator.BusyContentTemplate。它仍然无法绑定。即使我用初始值填充对象,它仍然不会显示任何内容。@SebOlens hi。你能分享工作代码吗?@user1088259嗨。我希望我能,但那是两年前的事了,代码早就不存在了:)