【发布时间】:2015-02-26 01:19:23
【问题描述】:
我有以下情况,(用实际代码更新了我的表示)
数据类为,
public class X : INotifyPropertyChanged
{
public decimal patientID { get; set; }
public decimal medicationID { get; set; }
public decimal documentID { get; set; }
public decimal prescriptionID { get; set; }
public string prescriptionOrderNumber { get; set; }
public string patientName { get; set; }
public string medicationName { get; set; }
public string medicationQuantity { get; set; }
public string medicationInstructions { get; set; }
public string authorizingProvider { get; set; }
public string stateName { get; set; }
public bool prescriptionPrinted {get; set; }
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
}
}
VM class has an observable collection property as,
private ObservableCollection<X> _items = new ObservableCollection<X>();
public ObservableCollection<X> items
{
get { return _items; }
}
view
----
<UserControl.DataContext>
<viewModel:VM/>
</UserControl.DataContext>
<ListView Grid.Row="1" Margin="10" Name="epcslist" SelectionMode="Single" ItemsSource="{Binding items}" >
<ListView.View>
<GridView>
<GridViewColumn Width="30">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Name="btnPrintPrescription" Content=" P " ToolTip="Print prescription"
IsEnabled="{Binding Path=prescriptionPrinted}"
Command="{Binding DataContext.PrintPrescriptionCommand, RelativeSource={RelativeSource AncestorType=ListView}}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="30">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Name="btnOpenPatientChart" Content=" O " ToolTip="Open patient's chart"
Command="{Binding DataContext.OpenPatientChartCommand, RelativeSource={RelativeSource AncestorType=ListView}}">
</Button>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="120" DisplayMemberBinding="{Binding patientName}" >
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Patient" Click="EpcslistColumnHeader_Click">Patient</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn Width="150" DisplayMemberBinding="{Binding medicationName}" >
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Medication" Click="EpcslistColumnHeader_Click">Medication</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn Width="50" DisplayMemberBinding="{Binding medicationQuantity}" >
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Qty" Click="EpcslistColumnHeader_Click">Qty</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn Width="120" DisplayMemberBinding="{Binding medicationInstructions}" >
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Instructions" Click="EpcslistColumnHeader_Click">Instructions</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
<GridViewColumn Width="120" DisplayMemberBinding="{Binding authorizingProvider}" >
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Provider" Click="EpcslistColumnHeader_Click">Authorizing Provider</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
我正在尝试将按钮的 IsEnabled 绑定到源的处方打印,但它不起作用。我需要帮助来绑定它,以便在基于 bool 值加载列表视图时,我需要在将项目加载到列表视图时启用或禁用按钮。
非常感谢任何帮助。
谢谢, ub.
【问题讨论】:
-
我试过了,
但我仍然没有看到预期的行为,有什么想法我做错了吗?
标签: wpf button binding datatemplate isenabled