所以我有一個ProgressRing
和TextBlock
我試圖實現這個基本的黑客,這是顯示兩個元素時,TextBlock的文本被賦予一個值(非空的任何東西),否則當TextBlock的文本爲空時,這兩個元素應該隱藏。如何實現轉換器從字符串到可見性
我的Xaml如下所示。 TextBlock的文本綁定爲MessageForProgressRing
,其可見性綁定到MessageForProgressRing
和TargetNullValue
。我也一樣ProgressRing
:
<StackPanel Panel.ZIndex="100" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center">
<mahControls:ProgressRing Height="50" IsActive="True" Width="50" Visibility="{Binding MessageForProgressRing, TargetNullValue=Collapsed, FallbackValue=Visible}" Foreground="White" Margin="0,0,0.2,0" />
<TextBlock Text="{Binding MessageForProgressRing}" Visibility="{Binding MessageForProgressRing, TargetNullValue=Collapsed, FallbackValue=Visible}"/>
</StackPanel>
然後,在後面的代碼我只是觸發的財產,併爲其分配一個值上的一些按鈕事件處理:
private void closeApplicationButtonTask()
{
((CaptureViewModel)DataContext).MessageForProgressRing = "Closing... ";
Application.Current.MainWindow.Close();
}
然而,在我ViewModelBase
(所有的父我的觀點模型)它彈出一個錯誤OnPropertyChanged
說:
未找到請求值'正在關閉...'。
我想我需要一個轉換器,因爲能見度被綁定到Closing...
吧?如果是,我怎麼能實現它?
P.S我不能在OnPropertyChanged
中這樣做,因爲我沒有看到value
分配給它。另外我不認爲這是一個好主意,因爲它在執行前,執行期間和執行後被稱爲大時間。
你有沒有對此做過任何研究?一個簡單的谷歌搜索'wpf IValueConverter'會爲你提供大量的例子和教程,例如[this one](http://wpftutorial.net/ValueConverters.html)。 –
@Charles是的,但一旦我知道什麼是關鍵字(IValueConverter?)。謝謝我正在看它 –
我的搜索可能過於具體,我鏈接到的教程是'wpf轉換器'的第一個命中。你可能原諒我以爲你沒有看過它! –