我有兩個控件包含在數據模板中。控制#1是稱爲「TXTBLOCK」的TextBlock。控制#2是一個名爲「TXTBOX」的文本框:通過數據綁定和值轉換器的兩個控件的可見性
TXTBLOCK將可見性設置爲文本框可見性,使用轉換器給出相反的值。
例子:
<TextBlock Name="TXTBLOCK" Visibility="{Binding ElementName=**TXTBOX**, Path=Visibility, Converter={StaticResource toggleVisConverter}}" />
<TextBox Name="TXTBOX" Visibility="{Binding ElementName=**TXTBLOCK**, Path=Visibility, Converter={StaticResource toggleVisConverter}}" />
Converter是:
if (targetType == typeof(Visibility))
{
Visibility vis = (Visibility)value;
if (vis == Visibility.Collapsed)
{
return Visibility.Visible;
}
else
{
return Visibility.Collapsed;
}
//var vis == Visibility.Collapsed ? Visibility.Visible : Visibility.Collapsed;
}
//return vis;
throw new InvalidOperationException("Value must be of type 'Visibility'.");
現在......對我來說,這應該是簡單的。更改一個人的可見性會將另一個人的可見性設置爲false。
不是這樣的......
通過作品的第一次,然後轉換停止被調用。
即使我在代碼後面明確聲明:「TXTBOX.Visibility = Visibility.Hidden」,轉換器也不會被調用。
什麼給?我錯過了什麼?
這是我在SO上的第一篇文章...如果我錯過了某些東西或需要提供更多信息,請原諒我。我會很樂意去做
謝謝!
奇怪我想知道爲什麼我沒有遇到堆棧溢出。我會嘗試你的建議並回復。欣賞迴應 – tronious
盧克再次感謝迴應。我看了一下,我不確定我是否按照你的建議。我已經從文本塊中刪除了綁定。我已經在TextBOX上製作了Binding TwoWay。我不確定我瞭解ConvertBack。你是否真的在說:「轉換(?)」 –
tronious
@ user1631520:看到我編輯的答案。 –