我正在使用MVVM架構來開發WPF應用程序...WPF按鈕可見性
到目前爲止,一切都一直很順利。
我遇到了綁定可見性問題。我想盡量減少在代碼中編寫代碼,如果可以的話,但如果它是必需的,那麼我不介意這樣做。
我有一個ViewModel。這個模型公開了一個布爾和2個命令。一個連接命令,一個斷開連接命令和一個DeviceCurrentlyConnected Bool。
基本上我決定做2個按鈕,但有基於布爾值的按鈕可見性。
所以我很難與此。我很久以前就嘗試過觸發器的樣式。
<Button Visibility="Hidden" Content="{x:Static UIStrings:ClientStrings.DeviceBar_DisconnectCommandName}" VerticalAlignment="Center" HorizontalAlignment="Center" Height="{Binding ElementName=this.Content, Path=DesiredHeight}" Margin="10" Name="Disconnect" Command="{Binding DisconnectCurrentDeviceCommand}">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding DataCotext.DeviceConnected, RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
我無法讓樣式工作。
基本上我想要的功能是:
DeviceConnected =假: 顯示與內容連接按鈕和命令結合到ConnectCommand。
DeviceConnected = true: 顯示一個帶有內容斷開和命令綁定到DisconnectCommand的按鈕。
用於當沒有設備當前連接時顯示和綁定到連接設備的按鈕,以及綁定到斷開命令並且斷開單詞的設備連接時顯示按鈕。
綁定意圖是「{綁定DataCotext.DeviceConnected ...}」還是一個錯字?即不是'{綁定DataContext.DeviceConnected ...}'。 – 2010-08-17 23:51:40
你的權利。它應該是DataContext。我的真實代碼是正確的,但:P。 – 2010-08-25 21:52:04