我已經看到這個請求的細微變化 - 但我很難讓這個工作適合我的情況。我有一個應用程序,用戶選擇一個組合框將驅動一個事件。這甚至從數據庫中獲取數據,我想將這些數據綁定到UI。我以爲我的綁定設置了正確性,但我什麼也得不到。我可以看到我所有的代碼計算正確啓動,但我沒有看到任何關於綁定的反饋。我對WPF很陌生,仍然試圖圍繞它(我來自MVC網絡世界),所以任何指針都非常感謝。謝謝。在WPF中綁定我改變的數據上下文
主窗口後面的代碼:
public MainWindow()
{
InitializeComponent();
DataContext = new MainWindowViewModel();
}
private void cboAllClients_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
MainWindowViewModel vm = DataContext as MainWindowViewModel;
listClient selectedClient = e.AddedItems[0] as listClient;
Credit.Calc c = new Credit.Calc();
c.CalcCredit(selectedClient.ClientName);
vm.FFCredits = c.FundFamilyCredits;
vm.FundCredits = c.FundCredits;
DataContext = vm;
}
主窗口XAML(縮寫爲結合問題)
<ListBox x:Name="lbFundFamily" Width="auto" Height="auto"
Background="Transparent" BorderThickness="0">
<ListBox.DataContext>
<Binding Source="FFCredits"></Binding>
</ListBox.DataContext>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="20"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Path=FundFamilyName}"
Grid.Row="0" Grid.Column="0"
Background="White" FontSize="14" Foreground="Black">
</TextBlock>
<!--<Rectangle Width="{Binding Path=BrokerCreditList.Utilization}"
Height="20" Grid.Row="0" Grid.Column="1"></Rectangle>-->
<!--<TextBlock Text="{Binding Path=BrokerCreditList.}"></TextBlock>-->
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
MainWindowViewModel:
class MainWindowViewModel : BaseViewModel
{
public List<listClient> AllClients { get; set; }
public ObservableCollection<FundFamilySum> FFCredits { get; set; }
public ObservableCollection<FundSum> FundCredits { get; set; }
public MainWindowViewModel()
{
using (AgencyModelEntities db = new AgencyModelEntities())
{
AllClients = db.listClients.ToList();
FFCredits = new ObservableCollection<FundFamilySum>();
FundCredits = new ObservableCollection<FundSum>();
}
}
}
我想你錯誤地轉發了你的xaml代碼作爲mainviewmodel,你能否更新它? – Silvermind 2013-05-14 17:28:47
刪除SelectionChanged事件並將'ComboBox'的'SelectedItem'屬性綁定到ViewModel中的某些相關屬性。 MVVM通過使用簡單的綁定和INotifyPropertyChanged消除了大多數UI事件的需要。 – 2013-05-14 17:28:52
您的MainWindowViewModel看起來像XAML。它不應該是C#嗎? – 2013-05-14 17:29:20