observableCollection
C# コードにプロパティがありComboBox
、この観察可能なコレクションにバインドされています。
<ComboBox x:Name="CameraInstances" Margin="10,0,0,0" Width="250" StaysOpenOnEdit="True" VerticalAlignment="Center" VerticalContentAlignment="Center"
ItemsSource="{Binding Path=CameraSettingsManager.Observable, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
SelectedIndex="{Binding Path=CameraSettingsManager.EditingCameraIndex, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectionChanged="CameraInstances_OnSelectionChanged" DisplayMemberPath="Name"
IsSynchronizedWithCurrentItem="True"
Height="30"/>
またComboBox
、これのフィルターとして機能する別のものがありSelectionChanged
、選択したフィルターに従って監視可能なコレクションと広告の新しいアイテムをクリアします。
public void Load(ObservableCollection<Object> objects, CameraBehavior behavior)
{
try
{
objects.Clear();
if (behavior == CameraBehavior.Undefined)
{
if (firstPersonCameraContainer.Count > 0)
{
foreach (KeyValuePair<string, FirstPersonCamera> camera in firstPersonCameraContainer)
{
objects.Add(camera);
}
}
if (thirdPersonCameraContainer.Count > 0)
{
foreach (KeyValuePair<string, ThirdPersonCamera> camera in thirdPersonCameraContainer)
{
objects.Add(camera);
}
}
if (flightCameraContainer.Count > 0)
{
foreach (KeyValuePair<string, FlightCamera> camera in flightCameraContainer)
{
objects.Add(camera);
}
}
}
else if (behavior == CameraBehavior.FirstPerson)
{
if (firstPersonCameraContainer.Count > 0)
{
foreach (KeyValuePair<string, FirstPersonCamera> camera in firstPersonCameraContainer)
{
objects.Add(camera);
}
}
}
else if (behavior == CameraBehavior.ThirdPerson)
{
if (thirdPersonCameraContainer.Count > 0)
{
foreach (KeyValuePair<string, ThirdPersonCamera> camera in thirdPersonCameraContainer)
{
objects.Add(camera);
}
}
}
else
if (behavior == CameraBehavior.Flight)
{
if (flightCameraContainer.Count > 0)
{
foreach (KeyValuePair<string, FlightCamera> camera in flightCameraContainer)
{
objects.Add(camera);
}
}
}
}
catch (Exception e)
{
MessageBox.Show(e.Message + e.StackTrace + e.TargetSite);
}
}
}
しかし、実際にはコレクションが更新された後は失われComboBox
ているようです。誰かが理由を知っていますか?ComboBox
ItemsSource