0
我有以下DataGrid
:DataGrid行datatrigger /模板
<DataGrid ItemsSource="{Binding Coll.View}" SelectedItem="{Binding SelectedTransaction}"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Visible"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Date" Binding="{Binding Date}" Width="100" />
<DataGridTextColumn Header="Category" Binding="{Binding Path=SelectedCategory.CategoryName}" Width="100" />
<DataGridTextColumn Header="Payee" Binding="{Binding Path=SelectedPayee.PayeeName}" Width="100" />
<DataGridTextColumn Header="Withdrawal" Width="100" />
<DataGridTextColumn Header="Deposit" Width="100" />
<DataGridTextColumn Header="Total" Binding="{Binding AccountBalance}" Width="100" />
</DataGrid.Columns>
交易是TransactionViewModel
项目的ObservableCollection
。
这些项目有这个属性,这是一个枚举,可以是:存款,提款。
private TransactionTypes tType;
public TransactionTypes TransactionType
{
get { return tType; }
set
{
tType = value;
OnPropertyChanged("TransactionType");
}
}
这一个:
public double? TransactionAmmount
{
get { return ammount; }
set
{
ammount = value;
OnPropertyChanged("TransactionAmmount");
}
}
是否有可能基于TRANSACTIONTYPE的价值TransactionAmmount绑定?如果TransactionType为Deposit,则将TransactionAmmount绑定到Deposit datagrid列。
如果TransactionType为撤销,则将TransactionAmmount绑定到撤销列。
最后在viewmodel中做了逻辑,但我会试一试你的代码,可能有用。 – Cristian
我正在使用这两种策略。有时候,viewmodel方法更方便。但有时候这只是一个纯粹的造型问题,然后我喜欢把它放在视图的xaml中。祝你好运。 –