1
我目前在Windows窗體中有一個帶有用戶界面的應用程序。此用戶界面背後的代碼與服務進行通信。將UI從Windows窗體轉換爲WPF數據綁定
例如,我有以下代碼:
public partial class MainWindow : Window
{
private KeyLessAccessLogic ServiceLogic;
public MainWindow()
{
InitializeComponent();
ServiceLogic = new KeyLessAccessLogic();
//LoadValues();
}
public KeyLessAccessLogic MyServiceLogic
{
get { return ServiceLogic; }
set
{
ServiceLogic = value;
// RaisePropertyChanged("MyServiceLogic");
}
}
private void BindDataSource()
{
cmb_user_name.DataSource = null;
cmb_user_name.Sorted = false;
cmb_user_name.DataSource = ServiceLogic.Users;
cmb_user_name.DisplayMember = "name";
}
我的XAML:
<ComboBox Height="23" HorizontalAlignment="Left" Margin="6,71,0,0"
Name="cmb_user_update" VerticalAlignment="Top" Width="120"
ItemsSource="{Binding Path=MyServiceLogic.Users}" DisplayMemberPath="name" />
現在我重新創建UI在WPF,和我有點失去了對新格式。我相信我給出的例子是WPF和Windows窗體之間區別的例子之一。
如何讓我的應用程序知道下拉框cmb_user_name
的數據源應該是什麼? ServiceLogic
是我服務的中心塊,例如訪問數據庫。
第二件事,我有一個列表框來顯示一些設備。我試圖接近的數據源不同,顯示還有什麼我曾嘗試:
<ListBox Height="100" HorizontalAlignment="Left" Margin="6,44,0,0"
Name="listBox_detected" VerticalAlignment="Top" Width="120"
ItemsSource="{Binding Path=ServiceLogic.TheDevicesList}" DisplayMemberPath="name" />
問題是它在'ServiceLogic'類中,而不是在viewmodel本身。 – Joetjah 2013-02-20 12:49:20
@Joetjah查看編輯答案 – 2013-02-20 12:54:55
我更新了我的問題。總之,我有一個問題:由於ServiceLogic使用數據庫中的數據,綁定會確保信息是正確的嗎?或者我應該在獲取數據時進行手動刷新?我的意思是,獲取綁定信息與更新不一樣,是嗎?也許你可以點亮這一點。我現在正在嘗試代碼 – Joetjah 2013-02-20 12:58:11