如果我的ViewModel中的DependencyProperty設置爲Visiblity.Hidden,我有一個TextBlock(實際上是一大堆TextBlocks),我將Text設置爲「」。我通過一個轉換器做法如下:WPF - 轉換器隱藏對DependencyProperty的依賴
<TextBlock Margin="0,0,5,0">
<TextBlock.Text>
<Binding Converter="{StaticResource GetVisibilityOfColumnTitles}"
Path="Name" />
</TextBlock.Text>
</TextBlock>
轉換器看起來是這樣的:
public object Convert(object value, Type targetType,
object parameter,System.Globalization.CultureInfo culture)
{
if (MainMediator.Instance.VisibilityOfWorkItemColumnTitles
== Visibility.Visible)
return value;
else
return "";
}
我承認這是要做到這一點有點令人費解的方式,但我有我的理由(DataContext的併發症和TextBlock的間距)
我遇到的問題是,當VisibilityOfWorkItemColumnTitles改變時,即使它是一個依賴屬性,TextBlock.Text也沒有意識到存在依賴關係(因爲它在轉換器中使用)。
有沒有在代碼背後(最好在轉換器)說,這個TextBlock想要更新此VisibilityOfWorkItemColumnTitles更改此綁定?
這是一個好主意。問題是VisibilityOfWorkItemColumnTitles在我的MainMediator類(ViewModel)中,並且名稱不是(它是列表框中的一個項目(實際上是子項目))。我怎樣才能到達中介而不會搞亂datacontext(這是我提到的DataContext併發症)。 – Vaccano 2009-12-29 22:47:30
啊,這是什麼來源?我會試一試。謝謝! – Vaccano 2009-12-29 22:56:48
甜蜜的答案!萬分感謝! – Vaccano 2009-12-29 23:05:15