【发布时间】:2015-10-19 12:52:02
【问题描述】:
假设我有一个简单的小 WPF 应用程序,如下所示:
-------------------------------
Amount Left: 1,000
[Subtract 1]
[Subtract 5]
[Subtract 15]
[Subtract 30]
-------------------------------
“剩余金额:”和“1,000”是独立的文本块。 “减去 x”是 ListView 内、DataTemplate 内的所有按钮。每次单击按钮时,都会从 1,000 中减去按钮的数量。所有这些我都在工作。
这是我无法弄清楚的。当剩余金额低于 30 时,需要禁用最后一个按钮。当数量低于 15 时,倒数第二个按钮将被禁用。依此类推,直到剩余金额为零并且所有按钮都被禁用。我不知道如何禁用按钮。
我在这里给出的这个例子并不是我想要做的完全,但它是一个大大简化的例子,这将使这篇文章变得更短更简单。本质上,这就是我现在所拥有的。
XAML:
<DockPanel>
<TextBlock Text="Amount Left:" />
<TextBlock x:Name="AmountLeft" Text="1,000.00" />
</DockPanel>
<DockPanel>
<ListBox x:Name="AuthorListBox">
<ListView.ItemTemplate>
<DataTemplate>
<Button x:Name="SubButtom" Content="{Binding SubtractAmount}" Click="clickSubtract" />
<DataTemplate>
</ListBox>
</DockPanel>
XAML.cs
private void clickSubtract(object sender, RoutedEventArgs e)
{
Button button = sender as Button;
Int32 SubtractAmount = ((Data.AppInformation)button.DataContext).SubtractAmount; // This is the amount to be subtracted
// logic to update the amount remaining. This works.
// What I need to figure out is how to disable the buttons
}
【问题讨论】:
-
你在使用 MVVM 吗?这可以在虚拟机中轻松完成
-
我会发布一个 MVVM 解决方案
-
天啊!现在可以粘贴 XAML 了吗?
-
发布整个 XAML,因为我们必须找出问题出在哪里。
-
你确定它没有达到断点吗?你在调试模式吗?你的 ShellViewModel 在做什么?
标签: c# wpf listview button datatemplate