1 回答

TA貢獻1757條經(jīng)驗 獲得超8個贊
我會根據(jù)我從你的問題中了解到的給你我的想法。
主窗口.xaml.cs
public partial class MainWindow : Window
{
private AppleViewModel appleViewModel;
public AppleViewModel AppleViewModel
{
get
{
return this.appleViewModel;
}
set
{
if (this.appleViewModel != value)
{
this.appleViewModel = value;
}
}
}
private BananaViewModel bananaViewModel;
public BananaViewModel BananaViewModel
{
get
{
return this.bananaViewModel;
}
set
{
if (this.bananaViewModel != value)
{
this.bananaViewModel = value;
}
}
}
public MainWindow()
{
InitializeComponent();
this.AppleViewModel = new AppleViewModel();
this.AppleViewModel.AppleID = "Apple001";
this.AppleViewModel.Size = 10;
this.BananaViewModel = new BananaViewModel();
this.BananaViewModel.BananaID = "Banana001";
this.BananaViewModel.Length = 10;
apple.DataContext = this.AppleViewModel;
banana.DataContext = this.BananaViewModel;
ObservableCollection<int> sizes = new ObservableCollection<int>();
for (int i = 0; i < 10; i++)
{
sizes.Add(i);
}
ListBox.ItemsSource = sizes;
}
private void ListBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (this.AppleViewModel.IsSelected)
{
this.AppleViewModel.Size = (int)ListBox.SelectedItem;
}
if (this.BananaViewModel.IsSelected)
{
this.BananaViewModel.Length = (int)ListBox.SelectedItem;
}
}
}
主窗口.xaml
<StackPanel Orientation="Vertical">
<wpfApplication4:AppleControlxaml x:Name="apple"/>
<wpfApplication4:BananaControl x:Name="banana"/>
<ListBox SelectionChanged="ListBox_OnSelectionChanged" x:Name="ListBox">
</ListBox>
</StackPanel>
您的水果虛擬機應(yīng)該有一個名為 IsSelected 的新屬性,例如:
private bool isSelected;
public bool IsSelected
{
get
{
return this.isSelected;
}
set
{
this.isSelected = value;
OnPropertyChanged("IsSelected");
}
}
你的水果控制也應(yīng)該有這個
<CheckBox IsChecked="{Binding IsSelected}"/>
如果您不想使用此復選框控件,請告訴我,我會嘗試找到更準確的答案
編輯以澄清您的編輯(xD):
假設(shè)您已經(jīng)使用其 Value 和 Description 屬性創(chuàng)建了“SettingsVM”。現(xiàn)在您想在 ListBox 上顯示您選擇的水果設(shè)置。所以讓我們走吧...每次你的水果改變時,你的 SettingsVM 的屬性也必須改變才能顯示正確的水果。在您的“banana1_MouseDown”或“apple1_MouseDown”中,您必須使用它們的屬性初始化您的 SettingsVM,以便您可以創(chuàng)建一個方法來執(zhí)行此操作。
private void InitializeSettingsVM(int value, string description)
{
//Same like you do when you initialize your Banana/AppleVM in your MainWindow initialize.
this.SettingsVM.Value = value;
this.SettingsVM.Description = description;
}
在您的banana1_MouseDown/apple1_MouseDown 中,您應(yīng)該執(zhí)行以下操作:
private void banana1_MouseDown(whateveryouhavehere)
{
//Whatever you do here
this.InitializeSettingsVM(this.BananaViewModel.Length,this.BananaViewModel.BananaID);
}
- 1 回答
- 0 關(guān)注
- 177 瀏覽
添加回答
舉報