Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 只有当用户在C中使用MVVM选择新项目时,才会更改激发选择# 问题_C#_Wpf_Mvvm - Fatal编程技术网

C# 只有当用户在C中使用MVVM选择新项目时,才会更改激发选择# 问题

C# 只有当用户在C中使用MVVM选择新项目时,才会更改激发选择# 问题,c#,wpf,mvvm,C#,Wpf,Mvvm,我已经为组合框设置了绑定,其中包含和SelectedItem以及绑定到我的ViewModel属性的ItemSource <ComboBox x:Name="cmb_cameraDevice" DisplayMemberPath="Name" IsSynchronizedWithCurrentItem="True" HorizontalAlignment="Stretch" Grid.Row="2" VerticalAlignment="Stretch" Background="{x:Nul

我已经为组合框设置了绑定,其中包含和
SelectedItem
以及绑定到我的ViewModel属性的
ItemSource

<ComboBox x:Name="cmb_cameraDevice" DisplayMemberPath="Name" IsSynchronizedWithCurrentItem="True" HorizontalAlignment="Stretch" Grid.Row="2" VerticalAlignment="Stretch" Background="{x:Null}" Foreground="#FFB03636" Grid.RowSpan="1" Grid.Column="5" Grid.ColumnSpan="3" ItemsSource="{Binding CameraDeviceList}" SelectedItem="{Binding SelectedCameraDevice}" />

public VideoCaptureDeviceInformation SelectedCameraDevice
{
    get { return _selectedCameraDevice; }
    set
    {
         selectedCameraDevice = value;
         OnPropertyChanged("SelectedCameraDevice");
         SelectedCameraDevice_Changed();

    }
}
private VideoCaptureDeviceInformation _selectedCameraDevice;

公共视频捕获设备选择的信息摄像设备
{
获取{return\u selectedCameraDevice;}
设置
{
selectedCameraDevice=值;
OnPropertyChanged(“SelectedCameraDevice”);
已选择Cameradevice_Changed();
}
}
专用视频捕获设备信息\u选择的摄像设备;
正如您从属性中看到的,当它更改时,它将调用一个方法,该方法将执行某些操作

问题出在我的load方法上,我填充组合框,该组合框触发此属性并因此调用该方法


我只希望在用户单击框并更改为新项目时触发此方法。

因此,您不希望在第一次设置字段时触发该操作。检查其是否为空,然后:

public VideoCaptureDeviceInformation SelectedCameraDevice
{
    get { return _selectedCameraDevice; }
    set
    {
         var oldVal = _selectedCameraDevice;
         _selectedCameraDevice = value;
         OnPropertyChanged("SelectedCameraDevice");
         if (oldVal != null)
         {
             SelectedCameraDevice_Changed();
         }
    }
}

您能否显示最初设置所选摄像头设备的代码?