WPF ComboBox IsSynchronized Значение по умолчанию - PullRequest
3 голосов
/ 11 марта 2010

Я пытаюсь отобразить значение по умолчанию (или даже значение НЕТ), когда выбранный индекс равен -1 или выбранный элемент равен нулю. Обычно это прекрасно работает, но когда я включаю IsSynchronizedWithCurrentItem и устанавливаю значение True, отображается первое значение в моей DataTable. Как я могу иметь оба IsSynchronizedWithCurrentItem = "True" и показать нет / значение по умолчанию при загрузке.

My Combo Box XAML:

<GroupBox Name="ClientGroup" Header="Client" Margin="63,182,0,177" FontSize="14" HorizontalAlignment="Left" Width="298">
<ComboBox Name="Supplier" Grid.IsSharedSizeScope="True" ItemsSource="{Binding}" IsEditable="True" Text="Please Choose..." TextSearch.TextPath="CompanyName" IsSynchronizedWithCurrentItem="True" Height="23" VerticalAlignment="Top" Margin="0,6,6,0" FontSize="11" StaysOpenOnEdit="True">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <Grid Margin="0,5,0,5">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" SharedSizeGroup="CompanyName" />
                    <ColumnDefinition Width="Auto" SharedSizeGroup="EIC" />
                </Grid.ColumnDefinitions>
                <TextBlock Text="{Binding CompanyName}" Grid.Column="0" />
                <TextBlock Text="{Binding EIC, StringFormat=' ({0})'}" Grid.Column="1" FontFamily="Courier New" FontWeight="Bold" FontSize="12" />
            </Grid>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>
</GroupBox>

Мой код CS позади:

ClientGroup.DataContext = (new CompanyDealsDataSetTableAdapters.CompanyTableAdapter()).GetData();

Когда я запускаю свое приложение, оно автоматически выбирает первую строку в моей таблице данных. Он работает, как и ожидалось, когда я удаляю IsSynchronizedWithCurrentItem.

У кого-нибудь есть какие-нибудь решения?

1 Ответ

1 голос
/ 17 марта 2010

Нашел ответ, и это было намного проще, чем я думал.

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        Supplier.Text = null;
    }

Кажется, что это работает, и все мои связанные поля имеют нулевые значения / значения по умолчанию:).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...