1

現在、Windows フォームのユーザー インターフェイスを備えたアプリケーションを使用しています。このユーザー インターフェイスの背後にあるコードは、サービスと通信します。

たとえば、次のコードがあります。

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" />

今、私は WPF で UI を再作成しましたが、新しい形式について少し迷っています。ここで挙げた例は、WPF と Windows フォームの違いの例の 1 つだと思います。

Dropdown-box のデータソースをアプリケーションに知らせるにはどうすればよい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" />
4

1 に答える 1

1

そのために使用XAMLします:

<ComboBox ItemsSource="{Binding MyServiceLogic.Users}" 
    SelectedItem="{Binding User}" 
    DisplayMemberPath="name" />

オブジェクトを保持するプロパティを作成しServiceLogicます。ViewModelServiceLogic

private ServiceLogic myServiceLogic;
public ServiceLogic MyServiceLogic 
{
    get { return  myServiceLogic; }
    set
        {
            myServiceLogic = value;
            RaisePropertyChanged("MyServiceLogic");
        }
}

だと思いUsersますObservableCollectionUsersまたは、コレクションを直接保持するプロパティを作成できます。

于 2013-02-20T12:47:52.453 に答える