我在wpf中有一些代码我已经使用了busyindicator并且我设置了datatemplete现在我的问题是我在我的应用程序中使用了mvvm模式而我想使用busyindicator但我不知道如何绑定textblock里面busyindicaor datatemplete.my代码看起来像
<extended:BusyIndicator Name="_busyIndicator">
<extended:BusyIndicator.BusyContentTemplate>
<DataTemplate>
<StackPanel Margin="4">
<TextBlock Text="Downloading Email" FontWeight="Bold" HorizontalAlignment="Center" Name="Dhaval"/>
<StackPanel Margin="4">
<TextBlock Text="Downloading message 4/10..."/>
<ProgressBar Value="40" Height="15" x:Name="Progress_Dhaval"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</extended:BusyIndicator.BusyContentTemplate>
答案 0 :(得分:10)
您可以使用Binding with RelativeSource。
在ViewModel中添加以下属性:
private string _busyText;
public string BusyText
{
get { return _busyText; }
set { _busyText = value; RaisePropertyChanged(() => BusyText); }
}
并更改此行:
<TextBlock Text="Downloading message 4/10..."/>
关于这一个:
<TextBlock Text="{Binding Path=DataContext.BusyText, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" />