У меня есть следующие 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>
Сделки является ObservableCollection
из TransactionViewModel
пунктов.
Элементы имеют это свойство, которое является перечислением, которое может быть: Депозит, снятие средств.
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");
}
}
Можно ли связать TransactionAmmount на основе стоимости TransactionType? Если TransactionType является вкладкой, привяжите транзакционный столбец к столбцу данных datagrid.
Если TransactionType является Withdrawal, то привяжите TransactionAmount к столбцу Withdrawal.
В конце сделал логику в viewmodel, но я дам ваш код попробовать, может быть полезно. – Cristian
Я использую обе стратегии. Иногда подход viewmodel более удобен. Но иногда это просто проблема с стильным стилем, и мне нравится помещать его в xaml вида. Удачи. –