組控制這裏的情景有沒有辦法在邏輯上在WPF
我有一些TextBlock的控制網格,每個網格中的一個單獨的單元格。從邏輯上講,我希望能夠將它們的可見性設置爲綁定到ViewModel中的屬性。但是由於它們分別位於網格中的單獨單元格中,因此我必須設置每個TextBlock的可見性屬性。
有沒有一種方法讓我可以設置其子項的共同屬性的非可視組?還是我在做夢?
組控制這裏的情景有沒有辦法在邏輯上在WPF
我有一些TextBlock的控制網格,每個網格中的一個單獨的單元格。從邏輯上講,我希望能夠將它們的可見性設置爲綁定到ViewModel中的屬性。但是由於它們分別位於網格中的單獨單元格中,因此我必須設置每個TextBlock的可見性屬性。
有沒有一種方法讓我可以設置其子項的共同屬性的非可視組?還是我在做夢?
有沒有非視覺組,使這成爲可能。
直接或在所有TextBlocks共享的通用Style中設置Visibility屬性可能是最簡單的解決方案。
我希望你已經在DataTemplate中定義了所有的單元UI元素。你可以在ViewModel級別做一個小竅門來實現你正在尋找的東西。
綁定辛格爾頓在XAML屬性,並從應用程序中的任何地方控制這個屬性。
< TextBlock的能見度= 「{綁定源= {X:靜態本地:Singleton.Instance},路徑=能見度}」
和一個簡單的單例類可以被實現爲
public class Singleton :INotifyPropertyChanged
{
private Singleton() { }
public static Singleton Instance
{
get
{
if (instance == null){ instance = new Singleton(); }
return instance;
}
}
private Visibility _visibility;
public Visibility Visibility
{
get { return _visibility; }
set
{
_visibility = value;
PropertyChanged(this, new PropertyChangedEventArgs("Visibility"));
}
}
public event PropertyChangedEventHandler PropertyChanged;
private static Singleton instance;
}
現在你可以控制Singleton.Instance.Visibility = Visibility.Collapsed從你的代碼的任何地方後面
另一種選擇是將項目組中每個項目的可見性屬性綁定到一個項目,這樣在您的代碼中,您只需設置一個項目的可見性即可。
可能會創建一個自定義控件,將其所有添加/刪除子方法重定向到其自己的父級,同時仍保留其內容的記錄,以便它可以應用其自己的屬性樣式。雖然會很棘手。
如果可能的話我大多將它們放置在一個組框和組框了borderThickness設置爲0。這樣,所有的控件進行分組,你看不出這是一個組框,你可以用一個屬性設置能見度..
<Style TargetType="{x:Type GroupBox}"
x:Key="HiddenGroupBox">
<Setter Property="BorderThickness"
Value="0" />
請問您能詳細說明嗎?我希望該團體的可見性被綁定到一個附屬的財產。 – Shimmy 2010-12-15 00:27:40