0
我有一個情況在這裏。啓用按鈕選中/取消WPF
我有一個的ListView使用複選框。複選框被定義爲數據模板。 我有另一個堆棧面板,它包含一個按鈕。我的要求是,最初在窗口加載時,沒有選中任何複選框,並且應該禁用按鈕。 當用戶點擊任何一個複選框時,應啓用按鈕。 當用戶取消選中所有複選框時,應該禁用按鈕。
我使用MVVM模式與牛framework.With事件的幫助,我就能夠實現這一功能。
但我的問題是,我們能否在xaml本身中處理這種情況。可能使用觸發器或轉換器?
我是新來WPF和有關WPF沒有深刻的認識。任何幫助表示讚賞。
我已經使用觸發器嘗試。但由於複選框在ListView中並且定義爲數據模板,我無法從按鈕樣式訪問複選框的元素名稱。
粗糙大綱如下提前
<ListView x:Name="MylistView" ItemsSource="{Binding Collection}" Height="250"
SelectionMode="Single"
BorderBrush="Transparent">
<ListView.ItemTemplate>
<DataTemplate>
<CheckBox x:Name="Checkbox" Content="{Binding Description}" IsChecked="{Binding IsEnable, Mode=TwoWay}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<StackPanel Orientation="Horizontal">
<Button x:Name="Save" Content="{l:Language Key=SAVE}" Width="50" Height="25" Margin="10"
Command="{Binding Updpate, Source={StaticResource proxy}}">
<Button.Style>
//How do i refer checkbox from this level. I get only "Mylistview" control at this level
</Button.Style>
</Button>
</StackPanel>
感謝
謝謝!我可以這樣做,但由於某些實現,IsChecked被綁定到在「Model」中定義的屬性,而不是在ViewModel中定義的屬性。列表視圖的數據源在ViewModel中定義。按鈕IsEnabled綁定在視圖模型中。所以目前我使用事件來從模型到視圖模型進行通信,當複選框選中/取消選中。這是服務於我的目的。但不是事件通知,有什麼辦法可以在xaml和viewmodel中處理?如果「器isChecked」沒有在模型中定義,這個答案是會符合我的要求 –
您可以在模型中實現RaisePropertyMethod也。沒有必要在ViewModel中聲明它。 – kritikaTalwar
如果這有助於你,你可以接受爲答案。 – kritikaTalwar